MySQL GROUP BY分组需求:将以V开头的type合并为VIP分组
MySQL 按规则分组并求和解决方案
可以通过CASE WHEN语句结合GROUP BY实现需求,核心逻辑是先对type字段进行条件转换,再按转换后的值分组求和:
SELECT CASE WHEN type LIKE 'V%' THEN 'VIP' ELSE type END AS type, SUM(Amount) AS Amount FROM your_table_name GROUP BY CASE WHEN type LIKE 'V%' THEN 'VIP' ELSE type END;
逻辑说明
CASE WHEN type LIKE 'V%' THEN 'VIP' ELSE type END:判断每条记录的type是否以'V'开头,满足条件则将分组名替换为'VIP',否则保留原type值SUM(Amount):对每个分组的Amount字段求和GROUP BY子句与SELECT中的转换逻辑保持一致,确保分组依据正确
执行结果
将上述语句中的your_table_name替换为实际表名后,执行会得到如下结果:
| type | Amount |
|---|---|
| disable | 60 |
| VIP | 150 |
| AGA | 40 |
| school | 40 |
内容的提问来源于stack exchange,提问作者Tin Fan Chung
相关产品推荐
相关产品推荐

