Accéder au contenu principal

Utiliser la clause GROUP AS

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 un tableau 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 ce tableau 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
					}
				]
			}
		]
	}
]

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !