GROUP BY句を使用 - Cloud

Talend Data Shaping Languageリファレンスガイド

Version
Cloud
Language
日本語 (日本)
Product
Talend Cloud
Module
Data Shaping Language
Content
ジョブデザインと開発

GROUP BY句は、式に基づいて前の句の結果をグループ化するために使われます。

GROUP BY句の後には単純式か条件式が必要です。また、ASキーワードを使ってエイリアスを定義することもできます。
GROUP BY expression AS identifier

グループ化後、現在のクエリーで参照できるのはグループ化された式のみです。グループ化されていないエレメントは、集約関数の引数としてのみ参照できます。

たとえば次の入力データでは:
{
   "customers":[
      {
         "firstName":"John",
         "lastName": "Smith",
         "orders":[
            {
               "order_id":"abc-12345",
               "items":[
                  {
                     "item_id":"97516848-jiargn",
                     "quantity":2
                  }
               ]
            }
         ]
      },
      {
         "firstName":"Jane",
         "lastName": "Doe",
         "orders":[
            {
               "order_id":"def-12345",
               "items":[
                  {
                     "item_id":"97516848-kftesn",
                     "quantity":3
                  },
                  {
                     "item_id":"96946848-metasb",
                     "quantity":1
                  }
               ]
            }
         ]
      }
   ]
}
GROUP BY句を使えばorder_idで結果をグループ化でき、sum関数を使えばオーダーの全アイテムの合計を取得できます。
FROM customers UNNEST orders UNNEST items
GROUP BY order_id AS id
SELECT {
    id,
    total_items = sum(quantity)
}
このクエリーは次の結果を返します:
[
	{
		"id": "abc-12345",
		"total_items": 2
	},
	{
		"id": "def-12345",
		"total_items": 4
	}
]