メイン コンテンツをスキップする

GROUP BY句を使う

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

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。