下面是我的数据库表。

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

最佳答案

只需使用条件聚合:

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


它使用MySQL功能,将布尔值视为数字上下文中的数字,其中0表示false,1表示true。因此,将这些值相加即可计算表达式为真的次数。

关于mysql - 如何编写SQL查询以按类型进行选择和分组以及按类型进行计数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41635241/

10-09 22:19