APPROXCOUNTDISTINCT関数は、属性の個別値の数をカウントします。
APPROXCOUNTDISTINCTはCOUNTDISTINCT関数と類似していますが、この関数は特定の状況において個別値の数の近似処理を実行できる点が異なります。 APPROXCOUNTDISTINCT関数は、GROUP BY結果ごとに、フィールド内の一意の値の数を返します。 APPROXCOUNTDISTINCTは、単一割当て属性と複数割当て属性の両方に使用できます。
APPROXCOUNTDISTINCT関数では、HyperLogLogアルゴリズムを使用して絞込みのセットを計算します。 個別値の数が少ない場合、結果は正確になります。個別値の数が大きい場合、結果は近似処理になります。
APPROXCOUNTDISTINCTでは、空のセットを持つレコードも評価されます(つまり、指定された複数割当属性に対する割当を持たないレコードに対しては、空のセットが返されます)。
APPROXCOUNTDISTINCT構文
APPROXCOUNTDISTINCT関数の構文は、次のとおりです:
APPROXCOUNTDISTINCT(<attribute>)
「属性」は、複数割当または単一割当の属性です。
APPROXCOUNTDISTINCTの例
Body WineID
--------------------------
{ Silky, Tannins } 3
{ Robust, Tannins } 4
{ Silky, Tannins } 5
{ Robust } 6
{ Robust } 8
{ Silky, Tannins } 9
{ Silky, Tannins } 12
{ Silky, Tannins } 16
{ Silky, Tannins } 18
--------------------------
RETURN Result AS SELECT APPROXCOUNTDISTINCT (Body) AS Total FROM WineState WHERE WineType = 'Red' GROUP BY WineType
Total=3, WineType=Red
したがって、本文属性には、WineType属性でグループ化された3セットの個別値があります。