oracle分组统计

我们假定有如下员工信息表:

TableName:DEPARTMENT

id  depno  sex   name

 1     1           0        Lily

 2     2           1        Tom

 3     1           1        Jim

 4     1           0        Kite

 5     2           1        Green

 6     1           1        Mr.Right

 7     2           1        Boss

问题:

1.每个部门的男女各自总人数

2.总的员工数及每个部门的总人数

分析:

略...

答案:

1.select depno,sex,count(*) from DEPARTMENT group by depno,sex order by depno,sex;

2.select depno sex,count(*) from DEPARTMENT group by rollup(depno,sex) order by depno desc,sex desc;

注:

1.如果语句中有where语句,则先执行where语句,在,再执行group by语句

2.最好不要对包含空值的列进行分组

3.rollup只会对第一列产生汇总,即带group by后面第一列产生汇总.

如果要对group by后面所有列产生汇总,这时我们就要使用cube函数

如:

select depno,sex,count(*) from DEPARTMENT group by cube(depno,sex) order by depno desc,sex desc;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值