How to write the sql query to select and group by type and count per type?

≡放荡痞女 提交于 2019-12-12 03:49:38

问题


Below is my database table.

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

I would like to select and group by type and count per type. How to write the sql query to get the following results?

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

回答1:


Just use conditional aggregation:

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

This uses a MySQL feature that treats boolean values as numbers in a numeric context, with 0 for false and 1 for true. Hence, adding up the values counts the number of times the expression is true.



来源:https://stackoverflow.com/questions/41635241/how-to-write-the-sql-query-to-select-and-group-by-type-and-count-per-type

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!