我有以下mysql表

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


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

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 - 状态列上ID的计数以及特定行总数的计数,使用GROUP BY IN MYSQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27834203/

10-12 18:50