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

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

前
次
機械翻訳について

範囲バケットによるグループ化

値範囲バケットを作成するには、レコードをバケット・サイズで除算し、必要に応じてFLOORまたはCEILを使用して、最も近い整数に端数処理します。

次の例では、売上を金額別にバケットにグループ化します:
/**
  * This groups results into buckets by amount,
  * rounded to the nearest 1000.
  */
RETURN Results AS
SELECT
   ROUND(FactSales_SalesAmount, -3) AS Bucket,
   COUNT(1) AS CT
FROM SaleState
GROUP BY Bucket

/**
  * This groups results into buckets by amount,
  * truncated to the next-lower 1000.
  */
RETURN Results AS
SELECT
   FLOOR(FactSales_SalesAmount/1000)*1000 AS Bucket,
   COUNT(1) AS CT
FROM SaleState
GROUP BY Bucket
ROUNDにも同じ効果がありますが、バケットのセットは異なります:
  • FLOOR(900/1000) = 0
  • ROUND(900,-3) = 1000
次の例では、レコードが固定数のバケットにグループ化されます:
DEFINE ValueRange AS SELECT
   COUNT(1) AS CT
FROM SaleState
GROUP BY SalesAmount
HAVING SalesAmount > 1.0 AND SalesAmount < 10000.0;

RETURN Buckets AS SELECT
   SUM(CT) AS CT,
   FLOOR((SalesAmount - 1)/999.0) AS Bucket
FROM ValueRange
GROUP BY Bucket
ORDER BY Bucket