次の問合わせの例では、1番目のグループとして州(state)と郡(county)で分類し、2番目のグループとして都市(city)で分類し、3番目のグループとしてテーブル全体を1つのグループとして分類しています。
次のsales_viewテーブル データがあると仮定します。
sales_view | ||||||
---|---|---|---|---|---|---|
PID | cost | sale | margin | state | county | city |
1 | 38350 | 50150 | 11800 | CA | Los Angeles | Long Beach |
1 | 63375 | 82875 | 19500 | CA | San Diego | San Diego |
1 | 46800 | 61200 | 14400 | CA | Los Angeles | Avalon |
1 | 40625 | 53125 | 12500 | CA | Los Angeles | Long Beach |
州(state)内の郡(county)、都市(city)、および州(state)ごとに売上高の集計を調べてみましょう。
次のSELECT文は、この情報を得るためにsales_viewのデータを分析します。
SELECT state, county, city, SUM(margin) FROM sales_view GROUP BY GROUPING SETS ((state,county),(city),());
問合わせで以下の結果が報告されます。疑問符(?)はnullを示します。
state |
county |
city |
SUM(margin) |
----- |
------ |
---- |
----------- |
CA |
Los Angeles |
? |
38700 |
CA |
San Diego |
? |
19500 |
? |
? |
Long Beach |
24300 |
? |
? |
San Diego |
19500 |
? |
? |
Avalon |
14400 |
? |
? |
? |
58200 |
nullは、欠落した情報ではなく、この応答セットでは空のセットを表わすのに使用されています。Nullは、示されているグループ分けレベルでレポートされない情報を意味しており、sales_view基本テーブルから欠落している情報を意味するわけではありません。この使用法は、nullが外部結合で一致しない行の空のセットを示すために使用されることに似ています。