oracle分组函数

分组函数是:group by

从别的地方看到对group by 的解释,还不错,我来借鉴借鉴。group 是分组,by后边是字段名,表示SQL语句是按照那个字段进行分组的。

与group by联合使用的函数:

  1. count() 计数
  2. sum()  求和
  3. avg() 平均数
  4. max() 最大值
  5. min() 最小值

group by的用法:

select 字段名1,字段名2,...... from  表名  group by 字段名1,字段名2,......

不一定是同一个字段,也许是不同的字段。

group by 后边的字段名是先按字段名1进行分组,然后按照字段名2进行分组,如果 有还有其他的字段名,以此类推。

举例说明:

select  deptno ,count(*) 部门人数  from emp group by  deptno  order by deptno asc

group by分组函数的特点:

  1. 使用分组函数后,在select语句中只允许出现分组字段和多行函数。
  2. 如果是多字段分组,则先按照第一字段分组,然后每个小组继续按照 第二个字段继续分组,以此类推。
  3. 在where字句中不允许出现多行函数。

分组筛选:使用关键字having

having的作用:针对分组进行分组后的数据筛选,允许用多行函数。

注意:having关键字必须和分组函数结合使用,不允许单独使用。

举例说明:

where和having的区别:

  1. where不允许出现多行函数,having允许出现多行函数
  2. where子句和having子句都可以使用普通字段直接进行筛选,但是where的效率高于having
  3. where执行的顺序:from——>where——>group by——>select——order by
  4. having执行的顺序:from——>group by——>select——>having——>order by
  5. 结论:在分组 语句中,使用where进行字段级别的筛选,使用having进行多行函数的筛选。

如有不妥,请赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值