[英]How to count distinct values over two categories?
我有一個SQL查詢,向我顯示每次購買的客戶和產品
client | product
-----------------------
Lucy Lu | Banana
Lucy Lu | Banana
Lucy Lu | Pineapple
Mad Damon | Banana
Mad Damon | Apple
Mad Damon | Apple
Peter Fox | Banana
Peter Fox | Banana
Peter Fox | Banana
Peter Fox | Apple
Peter Fox | Apple
我想區分這些查詢,但要區分每個客戶的每種產品的數量,因此我可以為每個客戶看到他購買了每種產品的數量:
client | product | count
----------------------------
Lucy Lu | Banana | 2
Lucy Lu | Pineapple | 1
Mad Damon | Banana | 1
Mad Damon | Apple | 2
Peter Fox | Banana | 3
Peter Fox | Apple | 2
我用count(DISTINCT product)
, count(DISTINCT client)
, count(*)
和GROUP BY (client)
或GROUP BY (product)
嘗試,但是沒有得到有用的解決方案。 當我用SELECT DISTINCT
[查詢的其余部分]嘗試時,我得到了想要的但沒有count列。
您不需要使用DISTINCT。 一個簡單的GROUP BY COUNT即可解決問題。
Oto Shavadze建議此查詢:
select client, product, count(*)
from t
group by client, product;
在這里,您可以根據(客戶,產品)對的不同值來分組。 COUNT將為您提供每個組中的行數。
嘗試此查詢,您將獲得輸出。 這里的test_data是表名。 請用您的table_name替換它。
SELECT count(product) as count,client, product from test_data group by product,client
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.