SQL新手求教:如何按国家合并行并汇总利润?
解决SQL多行数据按国家汇总的问题
兄弟,你的核心思路完全正确!用GROUP BY country配合SUM(Profit)来按国家汇总利润就是最标准的做法,先给你点个赞~
关于你疑惑的WHERE子句,其实它的作用是在汇总之前先过滤原始数据行,如果你的需求是汇总表中所有数据的利润,那WHERE子句完全可以直接去掉!
基础用法(无过滤需求)
直接执行下面的语句就行,记得把your_table_name换成你实际的表名:
SELECT country, SUM(Profit) AS Profit FROM your_table_name GROUP BY country ORDER BY country; -- 按国家排序,ASC是升序(默认),换成DESC就是降序
这里的AS Profit是给汇总后的利润列起别名,让结果更易读,不加也可以,但建议加上。
有过滤需求的情况(需要WHERE子句)
如果只想汇总某一部分数据的利润,比如:
- 只汇总2023年的利润:
SELECT country, SUM(Profit) AS Profit FROM your_table_name WHERE year = 2023 GROUP BY country ORDER BY country;
- 只汇总利润为正的行:
SELECT country, SUM(Profit) AS Profit FROM your_table_name WHERE Profit > 0 GROUP BY country ORDER BY country;
简单来说,WHERE里填的是你想保留的原始数据行的条件,没有过滤需求就不用写它。
内容的提问来源于stack exchange,提问作者Silva
相关产品推荐
相关产品推荐

