Using the GROUP AS clause - Cloud - 8.0

Talend Data Shaping Language Reference Guide

Version
Cloud
8.0
Language
English
Product
Talend Cloud
Module
Data Shaping Language
Content
Design and Development
Last publication date
2023-11-23

The GROUP AS clause is used to create an alias for the groups generated by a GROUP BY clause, in order to reference them later in the query.

The GROUP AS keyword should be followed by an alias which must be unique throughout the query.
GROUP AS alias
For example, with the following input data:
{
   "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
            }
         ]
      }
   ]
}
You can use the GROUP BY clause to group the result by customer and then use the GROUP AS to create an array of customer_orders elements, which will contain all orders for the same customer. You can then reference objects from that array in the query.
FROM orders
GROUP BY customer
GROUP AS customer_orders
SELECT {
      customer_orders
}
This query returns the following result:
[
	{
		"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
					}
				]
			}
		]
	}
]