Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2019 (15.x)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric SQL
database in Microsoft Fabric
Esta função devolve o número aproximado de valores únicos não nulos num grupo.
Transact-SQL convenções de sintaxe
Sintaxe
APPROX_COUNT_DISTINCT ( expression )
Arguments
expressão
Uma expressão de qualquer tipo, exceto imagem, sql_variant, texto narcisista ou texto.
Tipos de devolução
bigint
Observações
APPROX_COUNT_DISTINCT( expression ) avalia uma expressão para cada linha de um grupo e devolve o número aproximado de valores únicos não nulos num grupo. Esta função foi concebida para fornecer agregações em grandes conjuntos de dados onde a resposta é mais crítica do que a precisão absoluta.
APPROX_COUNT_DISTINCT é concebido para uso em cenários de big data e está otimizado para as seguintes condições:
- Acesso a conjuntos de dados com milhões de linhas ou superiores e
- Agregação de uma coluna ou colunas que têm muitos valores distintos
A implementação da função garante uma taxa de erro de até 2% dentro de uma probabilidade de 97%.
APPROX_COUNT_DISTINCT requer menos memória do que uma operação exaustiva COUNT DISTINCT. Dada a menor área de memória, APPROX_COUNT_DISTINCT é menos provável que a memória seja transferida para o disco em comparação com uma operação precisa COUNT DISTINCT. Para saber mais sobre o algoritmo utilizado para isso, consulte HyperLogLog.
Observação
Com strings sensíveis à colação, APPROX_COUNT_DISTINCT utiliza uma correspondência binária e fornece resultados que teriam sido gerados na presença de colações BIN e não BIN2.
Examples
A. Usar APPROX_COUNT_DISTINCT
Este exemplo devolve o número aproximado de chaves de ordem diferentes da tabela de ordens.
SELECT APPROX_COUNT_DISTINCT(O_OrderKey) AS Approx_Distinct_OrderKey
FROM dbo.Orders;
Aqui está o conjunto de resultados.
Approx_Distinct_OrderKey
------------------------
15164704
B. Usar APPROX_COUNT_DISTINCT com GROUP BY
Este exemplo devolve o número aproximado de chaves de ordem diferentes pelo estado da ordem da tabela de ordens.
SELECT O_OrderStatus, APPROX_COUNT_DISTINCT(O_OrderKey) AS Approx_Distinct_OrderKey
FROM dbo.Orders
GROUP BY O_OrderStatus
ORDER BY O_OrderStatus;
Aqui está o conjunto de resultados.
O_OrderStatus Approx_Distinct_OrderKey
---------------------------------------------------------------- ------------------------
F 7397838
O 7387803
P 388036