Jag stötte på den här frågan i jakten på en lösning på mitt problem med att räkna distinkta värden. När jag letade efter ett svar stötte jag på detta inlägg . Se sista kommentaren. Jag har testat det och använt SQL. Det fungerar riktigt bra för mig och jag tänkte att jag skulle tillhandahålla en annan lösning här.
Sammanfattningsvis, med DENSE_RANK()
, med PARTITION BY
de grupperade kolumnerna och ORDER BY
båda ASC
och DESC
på kolumnerna för att räkna:
DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName ASC) +
DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName DESC) - 1 AS drugCountsInFamilies
Jag använder detta som en mall för mig själv.
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields ASC ) +
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields DESC) - 1 AS DistinctCount
Jag hoppas att detta hjälper!