[英]Count distinct of multiple columns
我一直在試圖找出一個查詢。
假設一個表看起來像這樣:
cus_id prod_category agreement_id type_id
111 10 123456 1
111 10 123456 1
111 10 123456 2
111 20 123456 2
123 20 987654 6
999 0 135790 99
999 0 246810 99
and so on...
我想通過agreement_id和type_id獲取不同值的 prod_category 計數
所以我想得到這樣的結果:
cus_id prod_id count
111 10 2
111 20 1
123 20 1
999 0 2
我們可以使用如下兩級聚合查詢:
SELECT cus_id, prod_category, COUNT(*) AS count
FROM
(
SELECT DISTINCT cus_id, prod_category, agreement_id, type_id
FROM yourTable
) t
GROUP BY cus_id, prod_category;
內部不同查詢刪除了重復的元組,外部聚合查詢計算每個客戶和產品類別的不同元組的數量。
您想要計算每個(cus_id, prod_category)
元組的不同(agreement_id, type_id)
元組。
"Per (cus_id, prod_category) tuple" 翻譯成GROUP BY cus_id, prod_category
in SQL。
我們用COUNT(DISTINCT agreement_id, type_id)
計算不同的 (agreement_id, type_id) 元組。
SELECT cus_id, prod_category, COUNT(DISTINCT agreement_id, type_id) AS distinct_count
FROM mytable
GROUP BY cus_id, prod_category
ORDER BY cus_id, prod_category;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.