【问题标题】:how to use 'select' for this job如何在这项工作中使用“选择”
【发布时间】:2012-03-30 10:42:25
【问题描述】:

我在 sqlite 数据库中有一个表,如下所示。

身份状态 ============== × 0 是 1 是 0 × 1 × 1 z 0

例如,我有 3 个不同的 id,状态为 (0/1),x 在表中被找到 3 次,status=0 1 次,status=1 2 次,y 被找到 2 次表中,status=0 1次,status=1 1次。

所以,我想使用“选择”来获得以下结果,有什么方法可以完成这项工作吗?任何帮助,将不胜感激。谢谢

id sum(status=0) sum(status=1) total(status) ==================================================== ====== × 1 2 3 是的 1 1 2 z 1 0 1

【问题讨论】:

    标签: sql sqlite select


    【解决方案1】:

    我相信这应该可行:

    SELECT id, 
        SUM(CASE WHEN status = 0 THEN 1 ELSE 0 END) AS SUM_STATUS_0, 
        SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END) AS SUM_STATUS_1,
        SUM(status) AS SUM_STATUS
    FROM TABLE
    GROUP BY id
    

    【讨论】:

      【解决方案2】:

      这也应该起作用,因为空值不被 count 计算:

      select id,
        count(case when status = 0 then 1 end) Status0,
        count(case when status = 1 then 1 end) Status1,
        count(*) StatusAll
      from t
      group by id
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-29
        • 2019-03-14
        相关资源
        最近更新 更多