




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 l完成本节课的学习后,应当完成下面的目标:识记常用的分组函数。描述分组函数的用处。使用GROUP BY 子句对元组进行分组使用HAVING 子句来筛选分组l分组函数对一组数据行进行操作,并对每个组得出一个结果. DEPTNO SAL- - 10 2450 10 5000 10 1300 20 800 20 1100 20 3000 20 3000 20 2975 30 1600 30 2850 30 1250 30 950 30 1500 30 1250 MAX(SAL)- 5000AVG COUNT MAXMIN STDDEV SUMVARIANCESELECTcolumn, group_
2、function(column)FROMtableWHEREconditionGROUP BYcolumnORDER BYcolumn;AVG(SAL) MAX(SAL) MIN(SAL) SUM(SAL)- - - - 1400 1600 1250 5600l对于数字类型的数据,可以使用 AVG和SUM 函数.SQL SELECTAVG(sal), MAX(sal), 2MIN(sal), SUM(sal) 3FROMemp 4WHEREjob LIKE SALES%; l可以对许多类型的数据使用MIN和MAX函数.SQL SELECTMIN(hiredate), MAX(hiredate)
3、 2 FROMemp;MIN(HIRED MAX(HIRED- -17-DEC-80 12-JAN-83 COUNT(*)- 6SQL SELECTCOUNT(*) 2 FROMemp 3 WHEREdeptno = 30;lCOUNT(*) 返回查询出的总行数.lCOUNT(expr) 返回expr值非空的行的数.SQL SELECTCOUNT(comm) 2 FROMemp 3 WHEREdeptno = 30;COUNT(COMM)- 4l分组函数忽略了行中所有的空行.SQL SELECT AVG(comm) 2 FROM emp; AVG(COMM)- 550lNVL函数使得分组函数可
4、以处理空值.SQL SELECT AVG(NVL(comm,0) 2 FROM emp;AVG(NVL(COMM,0)- 157.14286 DEPTNO SAL- - 10 2450 10 5000 10 1300 20 800 20 1100 20 3000 20 3000 20 2975 30 1600 30 2850 30 1250 30 950 30 1500 30 1250 DEPTNO AVG(SAL) - - 10 2916.6667 20 2175 30 1566.6667SELECTcolumn, group_function(column)FROMtableWHEREco
5、nditionGROUP BYgroup_by_expressionORDER BYcolumn;l将表中的数据行用GROUP语句分为几个组.l在SELECT语句中,没有使用分组函数的列必须在GROUP By子句中.SQL SELECT deptno, AVG(sal) 2 FROM emp 3 GROUP BY deptno; DEPTNO AVG(SAL)- - 10 2916.6667 20 2175 30 1566.6667lGROUP BY后面的列可以不出现在 SELECT链中.SQL SELECT AVG(sal) 2 FROM emp 3 GROUP BY deptno; AVG
6、(SAL)- 2916.6667 21751566.6667 DEPTNO JOB SAL- - - 10 MANAGER 2450 10 PRESIDENT 5000 10 CLERK 1300 20 CLERK 800 20 CLERK 1100 20 ANALYST 3000 20 ANALYST 3000 20 MANAGER 2975 30 SALESMAN 1600 30 MANAGER 2850 30 SALESMAN 1250 30 CLERK 950 30 SALESMAN 1500 30 SALESMAN 1250JOB SUM(SAL)- -CLERK 1300MANAG
7、ER 2450PRESIDENT 5000ANALYST 6000CLERK 1900MANAGER 2975CLERK 950MANAGER 2850SALESMAN 5600DEPTNO-101010202020303030SQL SELECT deptno, job, sum(sal) 2 FROM emp 3 GROUP BY deptno, job; DEPTNO JOB SUM(SAL)- - - 10 CLERK 1300 10 MANAGER 2450 10 PRESIDENT 5000 20 ANALYST 6000 20 CLERK 1900.9 rows selected
8、.l在SELECT 语句中,任何不在聚组函数中出现的列,必须在 GROUP BY 子句中.SQL SELECTdeptno, COUNT(ename) 2 FROMemp;SELECT deptno, COUNT(ename) *ERROR at line 1:ORA-00937: not a single-group group function不能在 WHERE子句中对列做出限定.使用 HAVING 子句来限定分组.SQL SELECT deptno, AVG(sal) 2 FROM emp 3 WHERE AVG(sal) 2000 4 GROUP BY deptno;WHERE AVG
9、(sal) 2000 *ERROR at line 3:ORA-00934: group function is not allowed here DEPTNO SAL- - 10 2450 10 5000 10 1300 20 800 20 1100 20 3000 20 3000 20 2975 30 1600 30 2850 30 1250 30 950 30 1500 30 1250 DEPTNO MAX(SAL)- - 10 5000 20 3000l用 HAVING 子句来限定分组行被分组了.使用了分组函数.符合 HAVING子句条件的组将被显示出来.SELECTcolumn, g
10、roup_functionFROMtableWHEREconditionGROUP BYgroup_by_expressionHAVINGgroup_conditionORDER BYcolumn;SQL SELECT deptno, max(sal) 2 FROM emp 3 GROUP BY deptno 4 HAVING max(sal)2900; DEPTNO MAX(SAL)- - 10 5000 20 3000SQL SELECT job, SUM(sal) PAYROLL 2 FROM emp 3 WHERE job NOT LIKE SALES% 4 GROUP BY job 6 ORDER BY SUM(sal);JOB PAYROLL- -ANALYST 6000MANAGER 82755 HAVING SUM(sal)5000SQL SELECT max(avg(sal) 2 FROM emp 3 GROUP BY deptno;MAX(AVG(SAL)- 2916.6667l显示最大的平均工资. S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业文化建设对法律风险预防的作用
- 2025年银行业同业贷款协议规范文本
- 2025年双方协商的离婚安置协议范本
- 企业跨境经营中的责任问题与应对
- 统筹推进教师教育能力提升的面临的问题、机遇与挑战
- 构建出版业融合发展风险管理评估
- 绿色能源与抽水蓄能的深度融合
- 智能农业的新纪元
- 地理学全景解读
- 构筑智慧城市蓝图
- GB/T 1480-2012金属粉末干筛分法测定粒度
- GB/T 13754-2017供暖散热器散热量测定方法
- GA 838-2009小型民用爆炸物品储存库安全规范
- 【考研政治】2021年4月浙江理工大学研究生招生考试政治练习题100道(附答案解析)
- QTZ80(6013)塔吊基础天然基础计算书施工方案
- 初一英语竞赛课件
- 高热惊厥应急预案
- 场地平整土石方工程施工方案
- 质量部岗位技能矩阵图
- 新车验收表格
- 10KV环网柜试验报告模板
评论
0/150
提交评论