求助编写QUERY实现按Clan Name分组统计Class出现次数
统计各Clan下Class出现次数的SQL语句
基础分组统计查询
这是最直接的查询语句,会返回每个Clan与Class组合的出现次数,每一行都会显示对应的Clan Name:
SELECT `Clan Name`, `Class`, COUNT(*) AS `Total per Class` FROM your_table_name GROUP BY `Clan Name`, `Class` ORDER BY `Clan Name`, `Class`;
实现示例中空单元格格式的查询
如果需要实现示例里同一Clan仅首次显示名称、后续行留空的效果,可以使用窗口函数处理(适用于支持窗口函数的数据库,如MySQL 8+、PostgreSQL、SQL Server等):
SELECT CASE WHEN ROW_NUMBER() OVER (PARTITION BY `Clan Name` ORDER BY `Class`) = 1 THEN `Clan Name` ELSE '' END AS `Clan Name`, `Class`, COUNT(*) OVER (PARTITION BY `Clan Name`, `Class`) AS `Total per Class` FROM your_table_name GROUP BY `Clan Name`, `Class` ORDER BY `Clan Name`, `Class`;
说明
- 请将语句中的
your_table_name替换为你实际使用的表名 - 窗口函数版本的查询会为每个Clan下的Class排序,仅第一行显示Clan名称,其余行显示空字符串,同时统计对应Class的出现次数
内容的提问来源于stack exchange,提问作者AlwaysLearning
相关产品推荐
相关产品推荐

