计入group_concat

时间:2019-01-04 18:50:00

标签: count group-concat

我在Mysql表中有这种情况。

-----------------
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行(group by可以) 状态始终是这3种状态(可用,出售,打印)

寻求帮助

1 个答案:

答案 0 :(得分:1)

与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