繁体   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