Natknąłem się na to pytanie w poszukiwaniu rozwiązania mojego problemu liczenia odrębnych wartości. Szukając odpowiedzi, natknąłem się na ten post . Zobacz ostatni komentarz. Przetestowałem to i użyłem SQL. U mnie działa to naprawdę dobrze i pomyślałem, że przedstawię tutaj inne rozwiązanie.
Podsumowując, użyj DENSE_RANK()
, z PARTITION BY
zgrupowane kolumny i ORDER BY
oba ASC
i DESC
na kolumnach do policzenia:
DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName ASC) +
DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName DESC) - 1 AS drugCountsInFamilies
Używam tego jako szablonu dla siebie.
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields ASC ) +
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields DESC) - 1 AS DistinctCount
Mam nadzieję, że to pomoże!