有没有一种方法可以使用一列进行分组,但对于给定的组来说它可以等于一组值?
例如,假设我有记录:
id = 1, quantity = 40, type = 1
id = 2, quantity = 50, type = 2
id = 3, quantity = 20, type = 1
id = 4, quantity = 30, type = 3
id = 5, quantity = 60, type = 3
我想将类型 1 和类型 2 分组在一起,并将类型 3 单独分组。在 MySQL 中是否有一种简单的方法可以做到这一点,或者我在得到结果后这样做会更好吗?
最佳答案
当然,您可以使用 CASE 语句创建自定义组:
select case when id in (1,2)
then '1,2'
else id
end as custom_id_group
...
group by case when id in (1,2)
then '1,2'
else id
end
编辑:
RDBMS 并不普遍支持在 GROUP BY 子句中通过别名使用 CASE 语句的结果,但较新版本的 MySQL (>=5) 将支持它。
关于mysql - 有没有一种方法可以使用一列进行分组,但对于给定的组来说它可以等于一组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9778908/