如何计算两个类别的不同值?

时间:2017-08-29 08:33:28

标签: sql count distinct

我有一个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 [查询的其余部分]进行尝试时,我得到了我想要的但没有计数列。

2 个答案:

答案 0 :(得分:1)

您不需要使用DISTINCT。一个简单的GROUP BY和COUNT就可以了。

Oto Shavadze建议这个问题:

select client, product, count(*) 
from t 
group by client, product;

在这里,您可以根据(客户端,产品)对的不同值创建组。 COUNT将为您提供每个组中的行数。

答案 1 :(得分:0)

尝试此查询,您将获得输出。 这里test_data是表名。请将其替换为table_name。

ActivationException: Type not found in cache: Xamarin.Forms.INavigation.