Encontré esta pregunta en busca de una solución a mi problema de contar valores distintos. Al buscar una respuesta, encontré esta publicación . Ver último comentario. Lo probé y usé el SQL. Funciona muy bien para mí y pensé que proporcionaría otra solución aquí.
En resumen, usando DENSE_RANK()
, con PARTITION BY
las columnas agrupadas y ORDER BY
ambos ASC
y DESC
en las columnas a contar:
DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName ASC) +
DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName DESC) - 1 AS drugCountsInFamilies
Lo uso como plantilla para mí.
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields ASC ) +
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields DESC) - 1 AS DistinctCount
¡Espero que esto ayude!