SQL查询问题:按Country分组求和video_views(排除nan且仅2023年)
SQL分组求和异常修复
正确查询语句
SELECT Country, SUM(video_views) AS total_video_views FROM my-data-project-august-2023.youtube_global_2023.youtube_statistics_2023 WHERE Country IS NOT NULL AND created_year = 2023.0 GROUP BY Country ORDER BY total_video_views DESC;
原代码问题分析
- 多余的
SELECT DISTINCT:GROUP BY本身会对分组字段自动去重,加这个关键字完全没必要,甚至可能干扰结果逻辑。 - 错误的分组字段:需求是按
Country单独分组求和,但原代码把created_year也加入了GROUP BY和查询字段,这会让结果里每个国家都绑定年份,即使所有数据都是2023,也会造成“年份单独列出”的问题;如果存在其他年份未过滤的数据,还会导致同一个国家重复出现。 - 缺少过滤条件:原代码没加
WHERE语句排除Country为nan的行,也没限定created_year=2023.0,无关数据混入分组后自然会导致结果不符合预期。
内容的提问来源于stack exchange,提问作者Stacie
相关产品推荐
相关产品推荐

