【问题标题】:Count in group_concat计入 group_concat
【发布时间】:2019-05-31 08:28:47
【问题描述】:

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 行(分组是可以的) 状态始终是这 3 个(可用、已售、已打印)

谢谢帮助

【问题讨论】:

    标签: count group-concat


    【解决方案1】:

    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
    

    【讨论】:

    • 抱歉,来自 ORACLE DECODE 后台
    • 没问题 Virgil... 你的解决方案很棒而且解决了。谢谢!
    猜你喜欢
    • 2014-05-25
    • 1970-01-01
    • 2014-06-01
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 2020-05-23
    • 2017-12-19
    相关资源
    最近更新 更多