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

GROUP AS句を使う

GROUP AS句は、GROUP BY句で生成されたグループのエイリアスを作成し、クエリーの後半で参照するために使われます。

GROUP ASキーワードの後には、クエリー全体で一意であるエイリアスを付けることが必要です。
GROUP AS alias
たとえば次の入力データでは:
{
   "orders":[
      {
         "customer":"John Smith",
         "order_id":"abc-12345",
         "items":[
            {
               "item_id":"97516848-jiargn",
               "quantity":2
            }
         ]
      },
      {
         "customer":"Jane Doe",
         "order_id":"def-12345",
         "items":[
            {
               "item_id":"97516848-kftesn",
               "quantity":3
            },
            {
               "item_id":"96946848-metasb",
               "quantity":1
            }
         ]
      },
      {
         "customer":"Jane Doe",
         "order_id":"ghi-69875",
         "items":[
            {
               "item_id":"81516886-kfoaen",
               "quantity":2
            },
            {
               "item_id":"68946852-oasbsb",
               "quantity":4
            }
         ]
      }
   ]
}
GROUP BY句を使えば結果をcustomer別にグループ化し、GROUP ASを使えばcustomer_ordersエレメントの配列を作成すると、同じ顧客に対する注文がすべて含まれるようになります。その後は、クエリーにあるその配列からオブジェクトを参照できます。
FROM orders
GROUP BY customer
GROUP AS customer_orders
SELECT {
      customer_orders
}
このクエリーは次の結果を返します:
[
	{
		"customer_orders": [
			{
				"customer": "Jane Doe",
				"order_id": "def-12345",
				"items": [
					{
						"item_id": "97516848-kftesn",
						"quantity": 3
					},
					{
						"item_id": "96946848-metasb",
						"quantity": 1
					}
				]
			},
			{
				"customer": "Jane Doe",
				"order_id": "ghi-69875",
				"items": [
					{
						"item_id": "81516886-kfoaen",
						"quantity": 2
					},
					{
						"item_id": "68946852-oasbsb",
						"quantity": 4
					}
				]
			}
		]
	},
	{
		"customer_orders": [
			{
				"customer": "John Smith",
				"order_id": "abc-12345",
				"items": [
					{
						"item_id": "97516848-jiargn",
						"quantity": 2
					}
				]
			}
		]
	}
]

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

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