Mysql,在显示另一个冒号的同时,仅使用一个冒号创建一个不同的冒号
我有一张这样的桌子:Mysql,在显示另一个冒号的同时,仅使用一个冒号创建一个不同的冒号,mysql,count,distinct,Mysql,Count,Distinct,我有一张这样的桌子: ID USER PRODUCT 1 user1 product1 2 user2 product2 3 user2 product2 4 user3 product3 PRODUCT count product1 1 product2 1 product3 1 我想统计有多少不同的用户购买了每种产品 我期待这样的事情: ID USER PRODUCT 1 user1 product1 2 user2 product2 3 user2 product2 4 user
ID USER PRODUCT
1 user1 product1
2 user2 product2
3 user2 product2
4 user3 product3
PRODUCT count
product1 1
product2 1
product3 1
我想统计有多少不同的用户购买了每种产品
我期待这样的事情:
ID USER PRODUCT
1 user1 product1
2 user2 product2
3 user2 product2
4 user3 product3
PRODUCT count
product1 1
product2 1
product3 1
我有很多类似的事情,但没有达到我预期的结果
SELECT DISTINCT PRODUCT, COUNT(ID) as count FROM `test`
group by USER
(以下代码提供了此结果:
PRODUCT count
site1 1
site2 2
site3 1
第二条直线应该是1,而不是2。
有什么建议吗?
谢谢您想进行不同的计数:
SELECT PRODUCT, COUNT(DISTINCT USER) AS count
FROM test
GROUP BY PRODUCT;
您当前的查询正在使用SELECT DISTINCT
,它将尝试将DISTINCT应用于所选的所有内容。但是,您只希望将其应用于用户计数
尝试以下方法:
SELECT product, COUNT(DISTINCT user)
FROM table
WHERE 1 = 1
GROUP BY product
见: