【问题标题】:How to get multiple counts from a table with a single SELECT statement如何使用单个 SELECT 语句从表中获取多个计数
【发布时间】:2015-06-26 08:36:27
【问题描述】:

这个查询看起来有逻辑错误,所以没有给出我想要的。我希望我在下面解释清楚。你能帮帮我吗?

    SELECT a.CreateBy, CreateDate,
      (SELECT COUNT(*) FROM MyTable WHERE Item1=1) as Item1Count,
      (SELECT COUNT(*) FROM MyTable WHERE Item1=2) as Item2Count,
      (SELECT COUNT(*) FROM MyTable WHERE Item1=3) as Item3Count
    FROM MyTable a;

我的表

身份证 |创建者 |创建日期 |项目1 |项目2 |第 3 项 -------------------------------------------------- --- 100 |约翰 | 01.06.2015 | 1 | 0 | 1 101 |约翰 | 01.06.2015 | 1 | 1 | 1 102 |安 | 01.06.2015 | 0 | 1 | 0 103 |帕特里克 | 01.06.2015 | 1 | 1 | 0 104 |约翰 | 02.06.2015 | 1 | 0 | 1

我想得到如下数据。

创建者 |创建日期 | Item1Count | Item2Count | Item3Count -------------------------------------------------- ---------- 约翰 | 01.06.2015 | 2 | 1 | 2 约翰 | 02.06.2015 | 1 | 0 | 1 帕特里克 | 01.06.2015 | 1 | 1 | 0 安 | 01.06.2015 | 0 | 1 | 0

【问题讨论】:

    标签: mysql sql select count


    【解决方案1】:

    您可以使用条件总和,然后按如下方式分组

    select 
    CreateBy,
    CreateDate,
    sum(Item1=1) as Item1Count,
    sum(Item2=1) as Item2Count,
    sum(Item3=1) as Item3Count
    from MyTable
    group by CreateBy,CreateDate
    

    【讨论】:

    • 这个查询返回我需要的。感谢您的快速回复!
    猜你喜欢
    • 1970-01-01
    • 2014-01-20
    • 2010-10-09
    • 2011-06-27
    • 2019-12-20
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多