La clause GROUP AS
est utilisée pour créer un alias pour les groupes générés par une clause GROUP BY
, pour pouvoir les référencer plus tard dans la requête.
Le mot-clé
GROUP AS
doit être suivi par un alias devant être unique au sein de la requête.GROUP AS alias
Par exemple, avec les données d'entrée suivantes :
{
"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
}
]
}
]
}
Vous pouvez utiliser la clause
GROUP BY
pour grouper les résultats par customer
et utiliser la clause GROUP AS
pour créer une collection d'éléments customer_orders
, qui contiendra toutes les commandes d'un·e même client·e. Vous pouvez ensuite référencer des objets de cette collection dans la requête.FROM orders
GROUP BY customer
GROUP AS customer_orders
SELECT {
customer_orders
}
Cette requête retourne le résultat suivant :
[
{
"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
}
]
}
]
}
]