Martijn Visser created FLINK-34366:
--------------------------------------
Summary: Add support to group rows by column ordinals
Key: FLINK-34366
URL: https://issues.apache.org/jira/browse/FLINK-34366
Project: Flink
Issue Type: New Feature
Components: Table SQL / API
Reporter: Martijn Visser
Reference: BigQuery
https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#group_by_col_ordinals
The GROUP BY clause can refer to expression names in the SELECT list. The GROUP
BY clause also allows ordinal references to expressions in the SELECT list,
using integer values. 1 refers to the first value in the SELECT list, 2 the
second, and so forth. The value list can combine ordinals and value names. The
following queries are equivalent:
{code:sql}
WITH PlayerStats AS (
SELECT 'Adams' as LastName, 'Noam' as FirstName, 3 as PointsScored UNION ALL
SELECT 'Buchanan', 'Jie', 0 UNION ALL
SELECT 'Coolidge', 'Kiran', 1 UNION ALL
SELECT 'Adams', 'Noam', 4 UNION ALL
SELECT 'Buchanan', 'Jie', 13)
SELECT SUM(PointsScored) AS total_points, LastName, FirstName
FROM PlayerStats
GROUP BY LastName, FirstName;
/*--------------+----------+-----------+
| total_points | LastName | FirstName |
+--------------+----------+-----------+
| 7 | Adams | Noam |
| 13 | Buchanan | Jie |
| 1 | Coolidge | Kiran |
+--------------+----------+-----------*/
{code}
{code:sql}
WITH PlayerStats AS (
SELECT 'Adams' as LastName, 'Noam' as FirstName, 3 as PointsScored UNION ALL
SELECT 'Buchanan', 'Jie', 0 UNION ALL
SELECT 'Coolidge', 'Kiran', 1 UNION ALL
SELECT 'Adams', 'Noam', 4 UNION ALL
SELECT 'Buchanan', 'Jie', 13)
SELECT SUM(PointsScored) AS total_points, LastName, FirstName
FROM PlayerStats
GROUP BY 2, 3;
/*--------------+----------+-----------+
| total_points | LastName | FirstName |
+--------------+----------+-----------+
| 7 | Adams | Noam |
| 13 | Buchanan | Jie |
| 1 | Coolidge | Kiran |
+--------------+----------+-----------*/
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)