分组函数

分组函数是对表中一组记录进行操作,每组值返回一个结果,即首先要对表记录进行分组,然后再进对表记录进行分组,然后在进行操作汇总,每组返回一个结果,分组是可能是整个表分为一个组,也可能根据条件分成多组。

分组函数常用到的函数:

MIN
MAX
SUM
AVG
COUNT
使用分组函数:
SELECT [column,] group_function(column)
FROM TABLE
WHERE [condition]
[GROUP BY column]
[HAVING group_function(column) expression]
[ORDER BY column | group_function(column) expression]

用GROUP BY子句创建数据组

通过GROUP BY 子句可将表中满足WHERE条件的记录按照指定的列划分成若干个小组
--其中GROUP BY子句指定要分组的列
1.在SELECT列中出来分组函数那些项,所有列都必须在GROUP BY子句中,即如果在查询中使用了组函数,任何不在组函数中的列或表达式都必须包含在GROUP BY子句中。
如下面例子:
--查询部门平均工资
SELECT DEPTNO,AVG(NVL(SAL,0)) 
FROM EMP 
GROUP BY DEPTNO

--下面是错的sql
SELECT DEPTNO,AVG(NVL(SAL,0)) 
FROM EMP 
2.GROUP BY 指定的列并不是必须出现在SELECT列表中
如下面例子:
--查询部门平均工资
SELECT AVG(SAL)
 FROM EMP 
GROUP BY DEPTNO
用 HAVING CLAUSE子句排除组结果
使用HAVING子句限制组
--记录已经分组
--使用过组函数
--与HAVING子句匹配的结果才输出
如下面例子:
--查询每个部门最高工资大于2500的部门名称,最高工资
SELECT DEPTNO,MAX(SAL)
FROM EMP
GROUP BY DEPTNO
HAVING MAX(SAL)>2500

注:HAVING必须和GROUP BY一起用,且放在HAVING后面,GROUP BY 、HAVING、ORADER BY的使用顺序是GROUP BY 、HAVING、ORADER BY。



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值