プライマリ・コンテンツに移動
Oracle® Big Data Discovery Cloud Service EQLリファレンス

E65371-04
目次へ
目次
索引へ移動
索引

前
次
機械翻訳について

GROUPING SETS式

GROUPING SETS式を使用すると、GROUP BY句内に作成するグループの集合を選択的に指定できます。

GROUPING SETSでは、1つの問合せに複数のデータ・グループを指定します。 CUBEまたはROLLUPによって生成される集約の完全なセットではなく、指定されたグループのみが集約されます。 GROUPING SETSには、単一の要素または要素のリストを含めることができます。 GROUPING SETSでは、ROLLUPまたはCUBEから戻されたグループと同等のグループを指定できます。

GROUPING SETS構文

GROUPING SETS構文は、次のとおりです:
GROUPING SETS(groupingSetList)
その場合、groupingSetListは単一の属性であり、複数の属性、CUBEROLLUPまたは()をカンマで区切ったリストで、空のグループを指定します。 空のグループは合計を生成します。 ネストされたグループ化設定は使用できないことに注意してください。
次に例を示します。
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(())

グループ化セット内の重複する属性の処理方法

指定されたグループ化セットに重複した属性を指定してもエラーは発生しませんが、重複するグループ化設定インスタンスが破棄されるため、属性のインスタンスは1つのみ使用されます。 たとえば、次の2つの問合せは同等です:
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)