Oracle 聚合函数
2024-10-18 18:24:05
聚合函数:
SQL中提供的聚合函数可以用来统计、求和、求最值等等。
此处采用Oracle 11g中其他用户SCOTT中的EMP表,进行演示。
–COUNT:统计行数量
COUNT(*)统计的是结果集的总条数,而count(字段)统计的是该字段中不为null的总条数
1、查询有多少岗位
selete count(distinct job) from emp;
2、查询员工总数 入职时间 最高工资 工资总额 平均工资
selete count(empno),
to-char(min(hiredate),'yyyy-mm-dd')||'----'||to_char(max(hiredate),'yyyy-mm-dd') as 入职时间,
max(sal),sum(sal),avg(sal)
from emp;
–SUM:获取单个列的合计值
3、查询工资总额
selete sum(sal) from emp;
–AVG:计算某个列的平均值
–MAX:计算列的最大值
–MIN:计算列的最小值
4、查询最早入职时间
selete min(hiredate) from emp;
–group by 分组函数 一般与聚合函数组合用
5、查询每个岗位最高工资
selete job,max(sal) from emp group by job;
6、查询岗位平均工资>2500
易错:
select job,avg(sal)
from emp
group by job
where sal>2500
当改写成:
select job,avg(sal)
from emp
where sal>2500
group by job
执行结果:
虽然能执行出结果,但是它是将所有大于2500的工资的岗位,集合在一起,算平均工资,不符合要求。
应该改成:
select job,avg(sal)
from emp
group by job
having round(avg(sal))>2500
执行结果:
where和having的区别:
- where仅仅用于处理从from子句中返回的值。
- having子句通常是与order by子句一起使用的,因为having的作用是对使用group by进行分组统计后的结果再进行下一步的筛选。
7、查询每个部门员工的平均工资 最高工资 工资总额 根据工资总额排序
selete deptno ,round(avg(sal)),max(sal),sum(sal)
from emp
group by deptno
order by sum(sal)
执行结果:
总结:SQL的执行顺序:
–第一步:执行FROM
–第二步:WHERE条件过滤
–第三步:GROUP BY分组
–第四步:执行SELECT投影列
–第五步:HAVING条件过滤
–第六步:执行ORDER BY 排序
最新文章
- Eclipse 各版本版本号代号对应一览表
- sql 中 left join 的使用
- Github上十大C#开源项目排行榜
- JavaScript中清空数组的三种方式
- 【java开发系列】—— spring简单入门示例
- 【LeetCode】264. Ugly Number II
- [iOS翻译]《The Swift Programming Language》系列:Welcome to Swift-01
- 淮安团购网美团联盟网赚版 v5.7
- ios开发图片点击放大
- [改善Java代码]Lock与synchronized是不一样的
- CentOS安装Nginx安装详解
- Spring-----自定义属性编辑器
- SQL Server 多表删除
- [HNOI 2015]开店
- SDL 开发实战(七): SDL 多线程与锁机制
- CSS布局-flex布局入门教程
- VC调用静态库、动态库
- Ctrl+Alt+Down/Up 按键冲突
- 讲解wpe抓包,封包
- 【原创 Hadoop&;Spark 动手实践 8】Spark 应用经验、调优与动手实践