数 group_concat

Count in group_concat

我在Mysql table中有这种情况。

-----------------
code gr. state
-----------------
10  a   available
10  a   sold
10  b   available
10  a   available
10  a   sold
10  a   printed
10  b   available
10  b   sold
10  b   available
------------------

我需要对这些数据进行分组,以便分组得到类似

的信息
group a -> available(3), sold(2), printed(1)
group b -> available(2), sold(1), printed(0)

我尝试结合使用 group_concat() 和 count() 但无法获得我需要的结果。

我的目标是每组有 1 行(分组方式可以) 状态总是这 3 个(可用、已售出、已打印)

谢谢帮助

SUM 和 IF 可以给你正确的答案。

SELECT gr, 
sum(if(state,'available',1,0)) available, 
sum(if(state,'sold',1,0)) sold,
sum(if(state,'printed',1,0)) printed
FROM table
GROUP BY gr