Chinaunix

标题: 求一个分组查询稍微有点复杂 [打印本页]

作者: lijuwen    时间: 2008-05-20 14:44
标题: 求一个分组查询稍微有点复杂
表aaa
字段
a ,   b,  
1     0
2     1
3     0
2     0
3     0
5     0
5     1
5     1
其中b,只有1 or 0 ,那我想查询按照 a来分组 统计 有多少条,然或再根据b来区分 各有多少,再算百分比;
期望结果如下

名字  总笔数   0笔数   1笔数   1占百分比
1,   1           1     0       100%
2     2           1     1       50%
3     2           2      0      0%
5     3           1     2       66.7%   

我希望一条语句搞定,当然也可以用其他方法。哈哈
作者: george002    时间: 2008-05-21 22:28
一句的话估计够戗。水平不够,呵呵。
作者: xxyyy    时间: 2008-05-22 09:01
select a,
          count(b),
          sum(case b when 0 then 1 else 0 end),
          sum(case b when 1 then 1 else 0 end),
          sum(case b when 1 then 1 else 0 end) / count(b) *100.000 || '%'
  from aaa
group by a
order by a;

或者

select a,
          count(b),
          sum(case b when 0 then 1 else 0 end),
          sum(b),
          sum(b) / count(b) *100.000 || '%'
  from aaa
group by a
order by a;

或者

select a,
          count(b),
          count(b) - sum(b),
          sum(b),
          sum(b) / count(b) *100.000 || '%'
  from aaa
group by a
order by a

[ 本帖最后由 xxyyy 于 2008-5-23 07:44 编辑 ]
作者: liaosnet    时间: 2008-05-22 14:57
标题: 回复 #3 xxyyy 的帖子
很好很强大.......
作者: george002    时间: 2008-05-22 21:59
标题: 回复 #3 xxyyy 的帖子
佩服!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2