需求1:统计表1中type=1的条数
id | name | type |
1 | 张三 | 1 |
2 | 李四 | 2 |
3 | 王五 | 2 |
4 | 张三 | 1 |
SQL:
select count(case when type=1 then 1 end) from table1
或者使用:
select count(id) from table1 where type=1 group by type
需求2:表1中type=1的name字段合并为1行
SQL:
select group_concat(name) from table1 where type=1
需求3:表1中type=1的name字段合并为1行,同时去掉重复值
SQL:
select group_concat(distinct name) from table1 where type=1
拓展:
表1(table1)
id | name | sex |
1 | 张三 | 男 |
id | fav |
1 | 喜欢打篮球 |
1 | 喜欢好姑凉 |
id | ach |
1 | 语文85分 |
1 | 数学95分 |
SQL:
select table1.id,table1.name,table1.sex,group_concat(table2.fav) as favs,group_concat(table3.ach) as achs
from table1
left join table2 on table1.id=table2.id
left join table3 on table1.id=table3.id
结果
id | name | sex | favs | achs |
1 | 张三 | 男 | 喜欢打篮球,喜欢好姑凉 | 语文85分,数学95分 |