Saya menemukan pertanyaan ini dalam mencari solusi untuk masalah saya menghitung nilai yang berbeda. Dalam mencari jawaban, saya menemukan postingan ini . Lihat komentar terakhir. Saya sudah mengujinya dan menggunakan SQL. Ini bekerja sangat baik untuk saya dan saya pikir saya akan memberikan solusi lain di sini.
Singkatnya, menggunakan DENSE_RANK()
, dengan PARTITION BY
kolom yang dikelompokkan, dan ORDER BY
keduanya ASC
dan DESC
pada kolom untuk menghitung:
DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName ASC) +
DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName DESC) - 1 AS drugCountsInFamilies
Saya menggunakan ini sebagai template untuk diri saya sendiri.
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields ASC ) +
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields DESC) - 1 AS DistinctCount
Saya harap ini membantu!