GROUP BY句を使う - Cloud - 8.0

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

Version
Cloud
8.0
Language
日本語
Product
Talend Cloud
Module
Data Shaping Language
Content
ジョブデザインと開発
Last publication date
2023-11-23

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
	}
]