17.05 - GROUPING SETSオプションの例 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
2021年1月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-175K-JPN
Language
日本語 (日本)

次の問合わせの例では、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が外部結合で一致しない行の空のセットを示すために使用されることに似ています。