【问题标题】:How to write the sql query to select and group by type and count per type?如何编写 sql 查询以按类型选择和分组并按类型计数?
【发布时间】:2017-05-28 20:42:17
【问题描述】:

下面是我的数据库表。

id     name    type   
1      a       1
2      a       1
3      a       1
4      a       0
5      a       0
6      b       1
7      b       1
8      b       0
9      b       0
10     b       0
11     c       1
12     c       1
13     c       0

我想按类型选择和分组,并按类型计数。如何编写sql查询得到如下结果?

name    count_type_0    count_type_1
a       2               3
b       3               2
c       1               2

【问题讨论】:

    标签: mysql sql select count group-by


    【解决方案1】:

    只使用条件聚合:

    select name, sum(type = 0) as count_0, sum(type = 1) as count_1
    from t
    group by name;
    

    这使用 MySQL 的一项功能,该功能将布尔值视为数字上下文中的数字,0 表示假,1 表示真。因此,将这些值相加会计算表达式为真的次数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-21
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 2019-01-07
      相关资源
      最近更新 更多