簡體   English   中英

計數不同的多列

[英]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_idtype_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM