oracle中的 group by、sum聚合函数注意事项


MIN(), MAX()是聚合函数.
group by 后面是要跟着的 select 中所有不是聚合函数的字段。
ex1:  select count(*) from emp;         //只是查询总总数 emp这张表里一共有多少条记录 所以不用group by
ex2:  select count(*) , deptno from emp group by deptno;  
                    // 根据deptno 分组, 查到的数据就是  列出 不同部门 记录总数  
         select count(*) ,  deptno ,  comm from emp group by deptno , comm;
                    // 根据deptno 和 comm 分组  以此类推
                       group by 后面是要跟着的 select 中所有不是聚合函数的字段   否则会报错。
注意:group by 不能有i.* ,即select i.*是不允许在group by 出现的,而是应该在select 后面全部手写出来
 having 相当于where     与where的唯一区别是 当查询语句中有 聚合函数 的时候 就不能用where 了  只能用having

group by 的作用:

       
分组查询,例如student表有字段name,sex,age分别代表姓名,性别,年龄
表中有如下数据:
张三 男 18
李四 男 20
王五 女 18
小明 男 19
小花 女 20
(1)统计男女人数各多少
    select sex,count(sex)  as num from student group by sex
 结果为:
      sex  num
      男   3
      女   2
(2)统计各年龄人数
    select age,count(age)  as num from student group by age
结果为:
    age num
    18   2
    19   1
    20   2


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值