mysql - 有没有一种方法可以使用一列进行分组,但对于给定的组来说它可以等于一组值?

标签 mysql group-by

有没有一种方法可以使用一列进行分组,但对于给定的组来说它可以等于一组值?

例如,假设我有记录:

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/

相关文章:

postgresql - 获取分组值除以总数

LIMIT(3) 行的 MySQL SUM 与 GROUP BY

mysql - 将 CSV 导入 phpmyadmin

mysql - 按行查询分组但保留最小日期

python - Pandas:多索引二级整数切片

mysql - SQL用字符串重命名NULL

MySQL 选择 GROUP BY 命令

php - CakePHP4 : Concatenated where on connected table not working as expected

mysql - 连接多个列然后拆分它们 - MySQL

PHP mySQL 准备语句错误