Me deparei com essa pergunta em busca de uma solução para o meu problema de contar valores distintos. Ao procurar uma resposta, encontrei este post . Veja o último comentário. Eu testei e usei o SQL. Funciona muito bem para mim e imaginei que forneceria outra solução aqui.
Em resumo, usando
DENSE_RANK()
, com PARTITION BY
as colunas agrupadas e ORDER BY
ambos ASC
e DESC
nas colunas para contar:DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName ASC) +
DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName DESC) - 1 AS drugCountsInFamilies
Eu uso isso como um modelo para mim.
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields ASC ) +
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields DESC) - 1 AS DistinctCount
Eu espero que isso ajude!