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