如何统计ps5和xbox表中不同列的相同游戏总出现次数?
解决方法
你的问题出在先分别分组统计再合并,这样相同游戏的两次统计结果不会自动求和,而是作为独立条目存在。正确的思路是先把两张表的游戏数据合并成一个完整的列表,再统一分组统计总次数。
正确SQL语句
SELECT game, COUNT(*) AS occurrence FROM ( SELECT ps5_game AS game FROM ps5 UNION ALL SELECT xbox_game AS game FROM xbox ) AS combined_games GROUP BY game ORDER BY occurrence DESC;
语句解释
- 子查询部分:用
UNION ALL把两张表的游戏列合并成一个名为game的列,UNION ALL会保留所有重复记录,这是统计总次数的关键(如果用UNION会去重,导致统计错误)。 - 外层查询:对合并后的
game列分组,用COUNT(*)统计每个游戏的总出现次数,最后按occurrence降序排列,得到预期结果。
执行结果
| game | occurrence |
|---|---|
| GOW | 4 |
| COD | 3 |
| UC | 3 |
| GTA | 1 |
| PVZ | 1 |
内容的提问来源于stack exchange,提问作者Noob YT
相关产品推荐
相关产品推荐

