Tôi đã gặp câu hỏi này để tìm kiếm giải pháp cho vấn đề đếm các giá trị riêng biệt của mình. Khi tìm kiếm câu trả lời, tôi đã xem qua bài đăng này . Xem bình luận cuối cùng. Tôi đã thử nghiệm nó và sử dụng SQL. Nó thực sự hoạt động tốt đối với tôi và tôi đã nghĩ rằng tôi sẽ cung cấp một giải pháp khác ở đây.
Tóm lại, sử dụng DENSE_RANK()
, với PARTITION BY
các cột được nhóm lại và ORDER BY
cả ASC
và DESC
trên các cột để đếm:
DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName ASC) +
DENSE_RANK() OVER (PARTITION BY drugClass ORDER BY drugName DESC) - 1 AS drugCountsInFamilies
Tôi sử dụng cái này làm mẫu cho chính mình.
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields ASC ) +
DENSE_RANK() OVER (PARTITION BY PartitionByFields ORDER BY OrderByFields DESC) - 1 AS DistinctCount
Tôi hy vọng điều này sẽ hữu ích!