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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/vjt1596846980081.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

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