GROUPING SETS
式を使用すると、GROUP BY
句内に作成するグループの集合を選択的に指定できます。
GROUPING SETS
では、1つの問合せに複数のデータ・グループを指定します。 CUBE
またはROLLUP
によって生成される集約の完全なセットではなく、指定されたグループのみが集約されます。 GROUPING SETS
には、単一の要素または要素のリストを含めることができます。 GROUPING SETS
では、ROLLUP
またはCUBE
から戻されたグループと同等のグループを指定できます。
GROUPING SETS構文
GROUPING SETS
構文は、次のとおりです:
GROUPING SETS(groupingSetList)
その場合、groupingSetListは単一の属性であり、複数の属性、CUBE
、ROLLUP
または()をカンマで区切ったリストで、空のグループを指定します。 空のグループは合計を生成します。 ネストされたグループ化設定は使用できないことに注意してください。
GROUP BY GROUPING SETS(a, (b), (c, d), ())
GROUP BY a, GROUPING SETS(b, c), GROUPING SETS((d, e))次と同等です:
GROUP BY GROUPING SETS((a, b, d, e),(a, c, d, e))
GROUP = GROUP BY() = GROUP BY GROUPING SETS(())
グループ化セット内の重複する属性の処理方法
GROUP BY GROUPING SETS ((x), (x)) GROUP BY GROUPING SETS ((x)))
GROUPING SETSの例
DEFINE ResellerSales AS SELECT SUM(DimReseller_AnnualSales) AS TotalSales, ARB(DimReseller_ResellerName) AS RepNames, DimReseller_OrderMonth AS OrderMonth FROM ResellerState GROUP BY OrderMonth; RETURN MonthlySales AS SELECT AVG(TotalSales) AS AvgSalesPerRep FROM ResellerSales GROUP BY TotalSales, GROUPING SETS(RepNames), GROUPING SETS(OrderMonth)