GROUP BY 子句 - AWS Clean Rooms

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

GROUP BY 子句

GROUP BY 子句會識別查詢的分組資料欄。分組資料欄必須在查詢使用標準函數運算彙整時宣告,像是 SUM、AVG 和 COUNT。如果 SELECT 運算式中存在彙總函數,則 SELECT 運算式中不在彙總函數中的任何資料行都必須位於 GROUP BY 子句中。

如需詳細資訊,請參閱 中的 SQL 函數 AWS Clean Rooms

語法

GROUP BY group_by_clause [, ...] group_by_clause := { expr | ROLLUP ( expr [, ...] ) | }

參數

expr

在查詢的選取清單中,資料欄或表達式的清單必須符合非彙整表達式的清單。例如,請考量以下簡單查詢。

select listid, eventid, sum(pricepaid) as revenue, count(qtysold) as numtix from sales group by listid, eventid order by 3, 4, 2, 1 limit 5; listid | eventid | revenue | numtix -------+---------+---------+-------- 89397 | 47 | 20.00 | 1 106590 | 76 | 20.00 | 1 124683 | 393 | 20.00 | 1 103037 | 403 | 20.00 | 1 147685 | 429 | 20.00 | 1 (5 rows)

在此查詢中,選取清單是由兩個彙整表達式所構成。第一個使用 SUM 函數,第二個使用 COUNT 函數。其餘兩個資料欄 LISTID 和 EVENTID 必須宣告為分組資料欄。

GROUP BY 子句中的表達式也可以使用序數來參考選取清單。例如,前一個範例可縮減如下。

select listid, eventid, sum(pricepaid) as revenue, count(qtysold) as numtix from sales group by 1,2 order by 3, 4, 2, 1 limit 5; listid | eventid | revenue | numtix -------+---------+---------+-------- 89397 | 47 | 20.00 | 1 106590 | 76 | 20.00 | 1 124683 | 393 | 20.00 | 1 103037 | 403 | 20.00 | 1 147685 | 429 | 20.00 | 1 (5 rows)
ROLLUP

您可以使用彙總擴充功能 ROLUP,在單一陳述式中執行多個 GROUP BY 作業的工作。如需彙總延伸項目及相關函數的相關資訊,請參閱 彙總延伸項目