返回首页> Oracle > Oracle高级查询:分组查询
跳过导航链接

Oracle高级查询:分组查询

文章摘要: Oracle高级查询:分组查询,Oracle高级查询--分组查询篇,什么是分组函数?分组函数作用于一组数据,并对一组数据返回一个值。常用的分组函数为AVG、SUM、MIN、MAX、COUNT、WM_CONCAT。 1.1 Oracle分组函数1 使用AVG(平均值)和SUM(合计)函数 select avg(sal),sum(sal) from emp; 使用MIN(最小值)和MAX(最...
 

Oracle高级查询:分组查询,Oracle高级查询--分组查询篇,什么是分组函数?分组函数作用于一组数据,并对一组数据返回一个值。常用的分组函数为AVGSUMMINMAXCOUNTWM_CONCAT

1.1 Oracle分组函数1

使用AVG(平均值)SUM(合计)函数

select  avg(sal),sum(sal) from emp;

使用MIN(最小值)MAX(最大值)函数

select max(sal),min(sal) from emp;

使用COUNT(计数)函数

select count(*) from emp;

使用DISTINCT(distinct)关键字,DISTINCT用于去掉重复的记录

select  distinct deptno from emp;

1.2 Oracle分组函数2

使用WM_CONCAT:行转列

set linesize 200 //说明命令输出结果在一行最多100个字符,超过一百个字符就换行

col 部门中员工的名字 for a60 //用来定义列的宽度

select deptno 部门号,wm_concat(ename) 部门中员工的名字 from emp group by deptno;

1.3 Oracle分组函数3

分组函数与空值

分组函数会自动忽略空值

注意:NVL函数使分组函数无法忽略空值

举例1:统计员工的平均工资

select sum(sal)/count(*) , sum(sal)/count(sal) , avg(sal) from emp;

1.4 group by子句的使用

可以使用group by 子句将表中的数据分成若干组

select列表中所有未包含在组函数中的列都应该包含在group by 子句中

示例:求每个部门的平均工资,要求显示:部门号,部门的平均工资

select deptno,avg(sal) from emp group by deptno;

使用多个列分组

示例:按部门、不同的职位,统计员工的工资总额

select deptno,job,sum(sal) from emp group by deptno,job;

1.5 having字句的使用以及和where的区别

过滤分组

select  deptno ,avg(sal) from emp group by deptno having  avg(sal) >2000 //平均数大于2000

wherehaving的区别:

不能在where子句中使用组函数(注意)。

可以在having子句中使用组函数

wherehaving可以通用的情况

示例:查询10号部门的平均工资

select deptno,avg(sal)from emp group by deptno having = 10

注意:从sql优化的角度上看,尽量使用where

having先分组后过滤 where先过滤后分组

1.6在分组函数中使用Order by

order by 的作用是用于排序

asc升序 desc降序

1.7分组函数的嵌套

示例:求部门平均工资的最大值

select max(avg(sal)) from emp group by deptno;

1.8 group by语句的增强

select deptno ,job,sum(sal) from emp group by deptno,job

+

select  deptno,  sum(sal) from emp group by depnto

+

select  sum(sal) from emp

select deptno,job,sum(sal) from group by rollup(deptno,job);

语法:group by rollup(a,b) 等价于 group by a,b + group by a + group by null

1.9 SQL*Plus的报表功能

报表包括:标题、页码、别名等

title col 15 ‘我的报表’ col 35 sql.pno //col 15 表示空15个列;sql.pno表示报表的页码

col deptno heading 部门号

col job heading 职位

col sum(sal)heading 工资总额

break on deptno skip 1

 

更多推荐:DBA培训  Oracle认证  Oracle培训  OCA 认证专员认证培训

上一篇:使用Oracle发送http请求
下一篇:Oracle 11G R2用exp无法导出空表的简单方案
文章摘要: Oracle 11G R2用exp无法导出空表的简单方案,alter system set deferred_segment_creation=false scope=both;执行完需重启DB INSTANCE。 并且对已经建立过的表无效,只对后面新建的表有效。 对已经建立的表可以执行一下Script。 select 'analyze table ' || A.TABLE_NAME || ' compute statistics;' from user_tables A; 执行结果的SQL select 'alter table '||table_name||' allocate extent;' from user_tables wh...

相关资讯

◆Oracle培训:Oracle数据泵导入dmp文件 ◆Oracle培训:Oracle手工建库出现ORA-01519错误 ◆Oracle培训:Oracle CDC部署 ◆Oracle培训:Oracle 12c创建可插拔数据库(PDB)及用户 ◆Oracle EXP和IMP使用方法介绍 ◆微软将在Office中引入人工智能 ◆微软发Surface Pro 4/Studio固件更新日志 ◆微软:AI人工智能应该帮助,而不是替代人 ◆微软推出WDATP强化企业终端威胁防护 ◆Windows申请免费SSL证书-Let's Encrypt ◆思科ASAP助力全数字化时代数据中心创新 ◆怎样选择合适的PoE交换机? ◆思科持续保持企业基础设施市场优势 ◆网络工程师需要的8项技能 ◆思科IOS中改善CLI的用户体验 ◆H3C交换机以太网端口类型 ◆H3C交换机做DHCP ◆H3C交换机常用配置命令 ◆新华三集团总裁兼首席执行官于英涛2017年会致辞 ◆新华三加速云落地 ◆RHEL7 配置VNC远程桌面 ◆RHEL7利用iso镜像制作本地yum源 ◆RHEL6 学习笔记 ◆RedHat5和RedHat6 配置yum源详解 ◆RedHat7上为Nginx编译安装nginx_push_stream_module ◆是否有必要参加PMP考试培训 ◆该怎么选择PMP培训公司 ◆企业为什么需要IT配置管理及其如何使用 ◆PMP考试心得 ◆IT资产管理与ITIL配置管理的区别和联系 ◆Juniper用户快更新:Junos OS、SRX有DoS漏洞 ◆Juniper防火墙之恢复出厂默认设置 ◆Juniper SSG双机高可用(HA)平滑升级经验分享 ◆高盛:Juniper市场表现将超过Cisco和Arista ◆Juniper收购云管理公司AppFormix ◆F5 Network:让爱点亮世界 ◆F5发布2017年应用交付状态报告 ◆除F5外,其他负载均衡软件的优缺点 ◆负载均衡的那些算法们 ◆F5配置手册:设备初始化配置 ◆Oracle培训:Oracle数据泵导入dmp文件 ◆Oracle培训:Oracle手工建库出现ORA-01519错误 ◆Oracle培训:Oracle CDC部署 ◆Oracle培训:Oracle 12c创建可插拔数据库(PDB)及用户 ◆Oracle EXP和IMP使用方法介绍 ◆VMware中CentOS 6.6的kdump启动失败解决 ◆VMware NSX升级:微细分、安全启动和支持非vSphere环境 ◆VMware虚拟化培训:虚拟化的基础知识 ◆VMware发布2016数字化工作空间现状报告 ◆VMware助力广州科政实现恒大集团打造全虚拟化数据中心 ◆戴尔EMC补丁在VMAX存储系统中出现漏洞 ◆EMC进行SAN拆分,解决更细化的存储需求 ◆EMC数据中心全闪存年,机架级闪存可让Hadoop提速10倍 ◆EMC发布2016年新品和技术路线 ◆重新定义企业IT,EMC联手VMware推超融合 ◆最近面试的大数据岗位的公司经历 ◆用大数据预测雾霾,已获得环保部订单的微软是如何做到的? ◆大数据学习经验 ◆身处大数据时代,大数据这些误区你知道吗 ◆大数据分析促进人才招聘 ◆云计算SaaS采用要考虑的5大因素 ◆如何构建一个私有存储云 ◆云计算的三大支柱 ◆云计算的真正价值不仅仅是节省开支 ◆云计算将改变我们的生活? ◆Apache Spark也有不完美 ◆Spark将机器学习与GPU加速机制纳入自身 ◆spark作业调优 ◆Spark基本工作流程及YARN cluster模式原理 ◆从Spark 2.0版的推出,看开源大数据技术的商业化发展 ◆EasyStack郭长波当选OpenStack基金董事 ◆OpenStack私有云:好处、挑战和未来 ◆在Openstack上创建并访问Kubernetes集群 ◆思科公司关闭基于OpenStack的公共云 ◆2017年OpenStack管理员认证会不会火? ◆IBM和Bell联手共同打造苹果iOS企业应用 ◆IBM首席执行官提出人工智能部署三大基本原则 ◆调研IBM与西门子:软件将是工业的未来! ◆IBM在美获专利最多 ◆IBM闪存迎接新挑战 ◆Hadoop创始人Doug Cutting寄语2017:五种让开源项目成功的方法 ◆基于Ubuntu Hadoop的群集搭建Hive ◆HDFS以及HBase动态增加和删除节点 ◆Cloudera提供课程帮助缩小数据技能差距 ◆Cloudera提供课程帮助缩小数据技能差距 ◆扩大与Azure合作,思杰力推超融合基础设施上部署VDI ◆MapReduce工作流多种实现方式 ◆Citrix虚拟化技术:XenServer6.2资源池配置 ◆Citrix虚拟化技术:XenServer6.2虚拟机创建 ◆Citrix虚拟化技术:XenServer6.2存储管理 ◆2017年十大最热IT技能:安全位列其中 ◆筑牢个人信息安全防火墙 ◆2016年最热门的六大IT职位 ◆CISP认证和CISSP认证区别 ◆成为CISSP的理由