sql统计结果分组

xiongbing528 2012-09-11 03:06:46
table A

id uid status
1 1 1
2 1 0
3 1 1
4 2 0
5 2 0
6 2 1
7 3 0
8 3 1
现在要统计出这个结果

uid status_1 status_0
1 2 1
2 1 2
3 1 1

按uid分组,统计每个uid的status状态分别为0 和分别为1的数量

sql该如何写呢
...全文
126 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2012-09-11
  • 打赏
  • 举报
回复
select uid,sum(status) as status_1,sum(1-status) as status_0
from A
group by uid
Rotel-刘志东 2012-09-11
  • 打赏
  • 举报
回复
select uid, sum(if(status=1, 1, 0)) as status_1, sum(if(status=0, 1, 0)) as status_0
from A
group by uid
matrix_xd 2012-09-11
  • 打赏
  • 举报
回复

select count(uid) from A where status=0 group by uid
union all
select count(uid) from A where status=1 group by uid;
rucypli 2012-09-11
  • 打赏
  • 举报
回复
select uid, sum(if(status=1, 1, 0)) as status_1, sum(if(status=0, 1, 0)) as status_0
from A
group by uid
小小小小周 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

未测试,请lz测试:
SQL code
select uid, sum(if(status=1, 1, 0)) as status_1, sum(if(status=0, 1, 0)) as status_0
from A
group by uid


SQL code
select uid, count(if(status=1, 1, null)) as status_1, cou……
[/Quote]
+1
nicenight 2012-09-11
  • 打赏
  • 举报
回复
未测试,请lz测试:
select uid, sum(if(status=1, 1, 0)) as status_1, sum(if(status=0, 1, 0)) as status_0
from A
group by uid


select uid, count(if(status=1, 1, null)) as status_1, count(if(status=0, 1, null)) as status_0
from A
group by uid

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧