mysql - MySQL中的按计数输出分组?
问题描述
我有一个关于组合 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 存储为一个单独的列,然后以某种方式将名称与之匹配……但可能应该有一种更直接的方法。谢谢你。
解决方案
只需使用多一层聚合:
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;
推荐阅读
- oauth-2.0 - 在 Ebay Browse API 上缺少用于授权的访问令牌
- python - Pandas 从 excel 创建合并报告
- go - 如何将数据从 CSV 导入 MySQL
- linux - 无法在 linux shell 脚本生成的 .csv 文件中存储为 CCyy-mm-dd 格式
- php - Extbase TYPO3 7.6 中的准备好的语句不起作用
- php - 我们可以在 .tpl 文件中定义变量吗?
- php - 如何将多维数组值显示到html表中
- javascript - 为什么 js parseInt 不适用于这个特定的整数?
- java - 如何使用 grails 将任何网页中的图像转换为 base64 字符串?
- python - 如何告诉 eve REST 框架使用不同的 mongodb 集合而不是资源名称作为集合名称