COUNT_APPROX

COUNT_APPROXは、最も頻度の高い絞込みを返します。

COUNT_APPROXは、特定の状況では結果が概数である点以外COUNT関数に似ています。COUNT同様、COUNT_APPROX関数は、フィールドの値がNULL以外であるレコードの数を、GROUP BYの結果ごとに数えます。

COUNT_APPROX関数の構文は次のとおりです。
COUNT_APPROX(<attribute>)
ここで、attributeは、複数割当て属性または単一割当て属性です。COUNT_APPROX(1)書式も使用できます。

COUNT_APPROX関数は、絞込みのセットを計算するFrequentKパターン・マッチング・アルゴリズムを使用します。具体的には、最も頻度の高い値がレポートされます。PAGE関数を使用して(後述の例に示すように)頻度の範囲を示すことができます。

COUNT_APPROXは、分布に偏りがあり、一部の少数の値が出現する頻度が高い場合に最もよく機能します。ただし、FrequentKパターン・マッチングで結果が生成されない場合、COUNT_APPROXは、COUNT関数と同じ実装(FrequentKアルゴリズムを使用しない)の使用に戻ります。FrequentKパターンマッチング・モードで実行された場合、COUNT_APPROXは概数の結果を返すことがあります。ただし、COUNTモードに戻った場合は正確です。

COUNT_APPROXの例

この例で、COUNTRYは、国名を含む単一割当て属性です。
RETURN Results AS
  SELECT
    COUNT_APPROX(COUNTRY) AS Approx
    FROM SalesData
    WHERE COUNTRY IS NOT NULL
    GROUP BY COUNTRY
    ORDER BY Approx DESC
    PAGE(0, 10)
この文の結果は次のようになります。
Approx    COUNTRY
--------------------
| 81970 | USA      |
|  1590 | GERMANY  |
|  1353 | JAPAN    |
|   667 | KOREA    |
|   598 | ENGLAND  |
|   585 | ITALY    |
|   546 | CANADA   |
|   242 | GUAM     |
|   203 | COLOMBIA |
|   176 | SPAIN    |
--------------------