---
pkg: '@nocobase/plugin-workflow-aggregate'
title: "Workflow ノード - 集計クエリ"
description: "集計クエリノード:データテーブルに対して集計関数による統計を実行し、その結果を後続のノードで利用できる形で返します。レポート用途でよく使われます。"
keywords: "Workflow,集計クエリ,Aggregate,統計,レポート,NocoBase"
---

# 集計クエリ

## はじめに

特定のデータテーブルの条件を満たすデータに対して集計関数でクエリを実行し、対応する統計結果を返すノードです。レポート関連の統計データを扱う場面でよく利用されます。

ノードの実装はデータベースの集計関数に基づいています。現時点では 1 つのデータテーブルの単一フィールドに対する集計のみをサポートしており、集計結果の数値はノードの結果として保存され、後続のノードから参照できます。

## インストール

組み込みプラグインのため、インストールは不要です。

## ノードの作成

Workflow の設定画面で、フローのプラスボタン（"+"）をクリックし、「集計クエリ」ノードを追加します:

![集計クエリノードの作成](https://static-docs.nocobase.com/7f9d806ebf5064f80c30f8b67f316f0f.png)

## ノードの設定

![集計クエリノード_ノード設定](https://static-docs.nocobase.com/57362f747b9992230567c6bb5e986fd2.png)

### 集計関数

SQL の `COUNT`、`SUM`、`AVG`、`MIN`、`MAX` の 5 種類の集計関数をサポートし、いずれかを選択してデータを集計します。

### 対象タイプ

集計対象は 2 通りの方法で選択できます。1 つは対象のデータテーブルとそのフィールドを直接選ぶ方法、もう 1 つはフロー上のコンテキストにあるデータオブジェクトを利用し、その関連するデータテーブルおよびフィールドに対して集計を行う方法です。

### 重複排除

SQL の `DISTINCT` に相当します。重複排除のフィールドは選択したデータテーブルのフィールドと同じになり、現状では別々のフィールドを選択することはできません。

### フィルター条件

通常のデータテーブルクエリのフィルター条件と同様で、フローのコンテキスト変数を利用できます。

## 例

集計対象が「データテーブルのデータ」の場合は理解しやすいので、ここでは「記事を新規作成した後、その分類に属する記事の総数を集計する」という例で、対象が「関連データテーブルのデータ」となる場合の使い方を紹介します。

まず、「記事」と「分類」という 2 つのデータテーブルを作成します。記事には分類テーブルを指す多対一の関係フィールドを持たせ、同時に分類側にも一対多の逆方向の関係フィールド「含まれる記事」を作成します:

| フィールド名 | タイプ |
| --- | --- |
| タイトル | 単一行テキスト |
| 所属分類 | 多対一（分類） |

| フィールド名 | タイプ |
| --- | --- |
| 分類名 | 単一行テキスト |
| 含まれる記事 | 一対多（記事） |

次に、データテーブルイベントをトリガーとする Workflow を作成し、記事テーブルのレコード追加後にトリガーするよう設定します。

その後、集計クエリノードを追加し、次のように設定します:

![集計クエリノード_例_ノード設定](https://static-docs.nocobase.com/542272e638c6c0a567373d1b37ddda78.png)

これにより、Workflow がトリガーされたとき、集計クエリノードは新規作成された記事の分類に属する記事の総数を統計し、ノードの結果として保存します。

:::info{title=ヒント}
データテーブルイベント Trigger の関連データを利用するには、Trigger 側で「関連データのプリロード」の対象フィールドを設定しておく必要があります。設定していない場合は選択できません。
:::
