gpt4 book ai didi

mysql - 在 MySQL 中按计数输出分组?

转载 作者:行者123 更新时间:2023-12-04 15:06:53 25 4
gpt4 key购买 nike

我有一个关于组合 COUNT 和 GROUP BY 查询的问题(MySQL 的新功能)。

+---------+------+
| Visitor | Shop |
+---------+------+
| Mark | aaa |
| Mark | aaa |
| Mark | bbb |
| Mark | ccc |
| Jane | aaa |
| Jane | bbb |
| Cody | aaa |
| Cody | aaa |
| Cody | bbb |
+---------+------+

我使用此查询来查找每位访问者访问过的不同商店的数量:

SELECT Visitor, COUNT(DISTINCT Shop) AS unique_shops
FROM my_table
GROUP BY Visitor
ORDER BY unique_shops DESC

它运行良好,但现在我想做相反的事情,计算有多少人访问了相同数量的不同商店(有多少人访问了 1、2、3 等不同的商店)。

+---------+-------- +
| Shops | Visitors|
+---------+---------+
| 2 | 2 |
| 3 | 1 |
+---------+---------+

我以为我可以通过按 unique_shops 变量分组来完成,但 MySQL Workbench 显示错误。然后我在考虑将 unique_shops 存储为一个单独的列,然后以某种方式将 Names 与之匹配......但可能应该有一种更直接的方法。谢谢。

最佳答案

只需多使用一层聚合:

SELECT unique_shops, COUNT(*) as num_visitors
FROM (SELECT Visitor, COUNT(DISTINCT Shop) AS unique_shops
FROM my_table
GROUP BY Visitor
) v
GROUP BY unique_shops
ORDER BY unique_shops DESC;

关于mysql - 在 MySQL 中按计数输出分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65968691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com