GROUPING_ID関数は、特定の行のGROUP BYレベルを計算します。
GROUPING_ID関数からは1つの数値のみが返されるので、これを使用して正確なGROUP BYレベルを特定できます。行ごとに、GROUPING_IDは1と0からなるセットを受け取ります。この1と0は、該当するGROUPING関数を使用した場合に生成されるものであり、連結されてビット・ベクトルを形成します。このビット・ベクトルは2進数として扱われ、GROUPING_ID関数はこの数値の10進値を戻します。
集計レベル | ビット・ベクトル | GROUPING_ID |
---|---|---|
a,b | 0 0 | 0 |
a | 0 1 | 1 |
b | 1 0 | 2 |
総計 | 1 1 | 3 |
GROUPING_ID(attributeList)attributeListは単一属性か、1-63個の属性のカンマ区切りリストです。
DEFINE r AS SELECT DimReseller_AnnualRevenue AS Revenue, DimReseller_AnnualSales AS Sales; RETURN results AS SELECT COUNT(1) AS COUNT, GROUPING_ID(Revenue) AS gid_Revenue, GROUPING_ID(Sales) AS gid_Sales FROM r GROUP BY CUBE(Revenue,Sales)