Ich bin auf diese Frage gestoßen, als ich nach einer Lösung für mein Problem des Zählens unterschiedlicher Werte gesucht habe. Auf der Suche nach einer Antwort bin ich auf diesen Beitrag gestoßen . Siehe letzten Kommentar. Ich habe es getestet und das SQL verwendet. Es funktioniert wirklich gut für mich und ich dachte, ich würde hier eine andere Lösung anbieten.
Zusammenfassend mit DENSE_RANK()
, mit PARTITION BY
die gruppierten Spalten und ORDER BY
beides ASC
und DESC
auf die zu zählenden Spalten:
DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName ASC) +
DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName DESC) - 1 AS drugCountsInFamilies
Ich benutze dies als Vorlage für mich.
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields ASC ) +
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields DESC) - 1 AS DistinctCount
Ich hoffe, das hilft!