mysql - 使用 MYSQL 中的 GROUP BY 计算状态列上的 id 计数以及特定行计数的总和

标签 mysql sql group-by aggregate-functions

我有以下 mysql 表

id  status
------------
1   available
2   hold
3   available
4   so-hold
5   so-hold
6   hold
7   hold
8   available

当我在 STATUS 列上使用 GROUP BY 时,我得到以下结果:

count(id)   status
---------------------
3           available
3           hold
2           so-hold

status'hold''so-hold'属于同一类别,所以我需要按以下方式计数:

count(id)   status
---------------------
3           available
5           hold

以下是我当前使用的 MySQL 查询:

SELECT count(id), status FROM `inventory_master` GROUP BY status

最佳答案

您可以使用CASE语句

select 
count(id),
case when status = 'so-hold'
     then 'hold'
     else status
end as status_col
from inventory_master
group by status_col

DEMO

关于mysql - 使用 MYSQL 中的 GROUP BY 计算状态列上的 id 计数以及特定行计数的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27834203/

相关文章:

MySQL - 组中组

mysql 查询以获取不同phone_numbers 的最新N 行的平均值

php - while 语句中的 jquery

php - 我应该使用哪个第三方搜索引擎(免费)?

sql - 使用 BigQuery sql 转置行中的列

mysql - 如何将一个表连接到两个不同的表

mysql - 如何从三个表到三列中选择数据?

php - 如何对 PHP MySQL JOIN 结果进行分组?

mysql - 在 mysql 中按特定条件对列进行排序

mysql - 从名字和姓氏生成唯一的用户名?