我在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种状态(可用,出售,打印)
寻求帮助
答案 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