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

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

前
次
機械翻訳について

CUBE拡張子

CUBEは指定された属性セットを取り、それらが取り得るすべての組合せに対して小計を作成します。

n属性がCUBEに指定されている場合、返される小計のnの組合せには2つあります。

CUBE (ROLLUPなど)は、GROUPING SETSの構文上の文字です:
CUBE(a, b, c) = GROUPING SETS((a,b,c), (a,b), (a,c), (b,c), (a), (b), (c), ())

CUBE構文

CUBEは、次の構文を使用してGROUP BY句に記述されます:
GROUP BY CUBE(attributeList)
ここで、attributeListは、1つの属性または複数の属性のカンマ区切りリストです。 属性は、単一割当て属性または複数割当て属性の場合があります。 CUBEは、コレクションに対して使用できます。

CUBEの例

この例は、CUBEを使用することを除き、ROLLUPの例とよく似ています:
DEFINE Resellers AS SELECT
  DimReseller_AnnualSales AS Sales,
  DimGeography_CountryRegionName AS Countries,
  DimGeography_StateProvinceName AS States,
  DimReseller_OrderMonth AS OrderMonth
FROM ResellerState
WHERE DimReseller_OrderMonth IS NOT NULL;

RETURN ResellerSales AS
SELECT SUM(Sales) AS TotalSales
FROM Resellers
GROUP BY CUBE(Countries, States, OrderMonth)

部分的CUBE

部分的なCUBEは、特定の属性に制限して、CUBE演算子の外部の属性を前に配置できる部分的なROLLUPと似ています。 この場合、可能なすべての組合せの小計は、キューブ・リスト内の属性に制限され(カッコ内)、GROUP BYリスト内の先行するアイテムと結合されます。

部分的なCUBEの構文は、次のとおりです:
GROUP BY expr1, CUBE(expr2, expr3)
この構文の例では、2 ^ 2 (つまり、4)の小計を計算します:
  • (expr1, expr2, expr3)
  • (expr1, expr2)
  • (expr1, expr3)
  • (expr1)
前述の例を使用した場合、一部CUBEGROUP BY句は次のようになります:
DEFINE Resellers AS SELECT
  ...
RETURN ResellerSales AS
SELECT SUM(Sales) AS TotalSales
FROM Resellers
GROUP BY Countries, CUBE(States, OrderMonth)