簡體   English   中英

如何計算兩個類別的不同值?

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

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