異なる値の数の計算¶
異なる値を持つ行の数を計算するには、次のアプローチのいずれかを使用できます。
DISTINCT
キーワードを使用して SQL COUNT 関数を呼び出します。異なる値のおおよその数が必要な場合は、 HyperLogLog 関数(例:
APPROX_COUNT_DISTINCT
)を使用できます。詳細については、 異なる値の数の推定 をご参照ください。階層的な集計(例: 複数のグループ化セット、ロールアップ、キューブ)の異なる値をカウントする場合は、次のアプローチのいずれかを使用すると(
COUNT(DISTINCT <式>)
を使用するのではなく)、パフォーマンスを向上させられます。-
このアプローチでは、ビットマップ関数を使用して、列内の異なる整数値を識別するビットマップを生成します。ビットマップは最大で32,768個の異なる値を表すことができるため、異なる値の数が32,768を超える場合、このアプローチでは(複数のビットマップを使用して)「バケット化」する必要があります。
詳細については、 ビットマップを使用した、階層的な集計の異なる値の計算 をご参照ください。
-
このアプローチでは、列に一意の値を含む配列を生成する集計関数を使用します。次に、 ARRAY_SIZE を呼び出して値の数を取得できます。
このアプローチは、任意のデータ型(例: VARIANT)の値に対して機能し、 ARRAY のデータのサイズが ARRAY の最大サイズを超えない限り、「バケット化」を必要としません。
詳細については、 配列の使用による、階層的な集計の異なる値の計算 をご参照ください。
-
次のトピック: