用mysql group by对case when的结果进行分组
时间: 2023-09-05 17:11:48 浏览: 68
可以使用MySQL的GROUP BY语句对CASE WHEN的结果进行分组。根据引用\[1\]和引用\[3\]的示例,假设我们有一个名为sale的表,其中包含syear(年份)、smonth(月份)和samount(销售金额)三个字段。我们可以使用以下查询语句来对CASE WHEN的结果进行分组:
SELECT syear,
MAX(CASE smonth WHEN 1 THEN samount ELSE 0 END) AS `一季度`,
MAX(CASE smonth WHEN 2 THEN samount ELSE 0 END) AS `二季度`,
MAX(CASE smonth WHEN 3 THEN samount ELSE 0 END) AS `三季度`,
MAX(CASE smonth WHEN 4 THEN samount ELSE 0 END) AS `四季度`
FROM sale
GROUP BY syear;
这个查询语句将根据syear字段对结果进行分组,并使用CASE WHEN语句将smonth为1的结果作为“一季度”列,smonth为2的结果作为“二季度”列,以此类推。使用MAX函数可以确保每个分组中只有一个非零值。
#### 引用[.reference_title]
- *1* *2* *3* [MySQL--case when的用法 以及 利用case when 和 group by 实现行转列](https://blog.csdn.net/weixin_42051673/article/details/113881999)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文