Cálculo do número de valores distintos¶
Para calcular o número de linhas que têm valores distintos, você pode usar uma das seguintes abordagens:
Chamar a função SQL COUNT com a palavra-chave
DISTINCT
.Se você precisar apenas de uma contagem aproximada de valores distintos, pode usar as funções HyperLogLog (por exemplo,
APPROX_COUNT_DISTINCT
). Para obter mais detalhes, consulte Estimativa do número de valores distintos.Se você estiver contando valores distintos para agregações hierárquicas (por exemplo, conjuntos de agrupamento múltiplos, valores acumulados ou cubos), você pode melhorar o desempenho usando uma das seguintes abordagens (em vez de usar
COUNT(DISTINCT <expr>)
):Use bitmaps para identificar o número de valores distintos.
Com esta abordagem, você utiliza as funções de bitmap para produzir bitmaps que identificam os valores inteiros distintos em uma coluna. Como um bitmap pode representar no máximo 32.768 valores distintos, esta abordagem requer “bucketização” (usar múltiplos bitmaps) se o número de valores distintos exceder 32.768.
Para obter mais detalhes, consulte Uso de bitmaps para computar valores distintos para agregações hierárquicas.
Produza matrizes que contenham os valores distintos.
Com esta abordagem, você utiliza as funções agregadas que produzem matrizes contendo os valores únicos em uma coluna. Você pode então chamar ARRAY_SIZE para obter a contagem dos valores.
Esta abordagem funciona para valores de qualquer tipo de dados (por exemplo, VARIANT) e não requer “bucketização”, a menos que o tamanho dos dados no ARRAY exceda o tamanho máximo de um ARRAY.
Para obter mais detalhes, consulte Uso de matrizes para computar valores distintos para agregações hierárquicas.
Próximos tópicos: