如何对具有不同值的组行进行分组并重命名,同时对其他列求和。
| Dept | Value 1 | Value 2 | Value 3 |
| Car1 | 2 | 4 | 9 |
| Car2 | 2 | 8 | 9 |
| Car3 | 1 | 4 | 9 |
| MC1 | 2 | 4 | 9 |
| MC2 | 2 | 7 | 9 |
| MC3 | 2 | 4 | 9 |
| RV1 | 2 | 4 | 5 |
| RV2 | 2 | 34 | 9 |
| RV3 | 3 | 4 | 9 |
我想将 car1、car2、car3 分组到名为 Car 的单行中,将 MC1、MC2、MC3 分组到名为 Motorcycle 的单行中,并将 RV1、RV2、RV3 分组到名为 RV 的单行中。每个组的“值 1、值 2 和值 3”列相加。
最佳答案
MySQL 似乎没有regexp_replace()
函数,可以使用的一个技巧是按CASE
表达式分组,例如:
select
(case
when dept like 'Car%' then 'Car'
when dept in ('MC1', ...) then 'MC'
when ...
end) dept,
sum(...),
sum(...)
from ...
group by
(case
when dept like 'Car%' then 'Car'
when dept in ('MC1', ...) then 'MC'
when ...
end)
我认为 MySQL 中的 group by
与标准 SQL 语法不同,它是不必要的,无论如何它在大多数其他数据库系统中都是强制性的,因此最好将它用于最终的迁移目的..
关于mysql - 将具有不同值的行分组并重命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27968818/