Oracle分组函数
来源:互联网 发布:addiction动作数据mmd 编辑:程序博客网 时间:2024/06/03 14:17
一、常见的分组函数:
常见的分组函数有AVG、COUNT MAX MIN SUM OVER–分组排序的一个函数
–count
很多时候用count(1)去替代count(*)查询效率比较高
SELECT COUNT(*) FROM T_EMP e;SELECT COUNT(1) FROM T_EMP e;SELECT COUNT(e.ename) FROM T_EMP e;
用字段查询count,当字段为空时,不计入数量。
–max
SELECT MAX(e.sal) FROM T_EMP e;SELECT e.ename FROM T_EMP e WHERE e.val=(SELECT );
–avg
SELECT AVG(e.sal) FROM T_EMP e;
–sum
SELECT SUM(e.sal) FROM T_EMP e;
重点–over—-不是分组函数
over函数是实现按指定字段分组排序,对于相同分组字段结果集进行排序。其中partition by 为分组字段,order by 为指定排序字段。
SELECT e.sal,e.dpet,sum(e.sal)over(partition by e.dept order by e.sal) FROM T_EMP e;
按照部门dept分组,各个分组后在各组内部按照sal进行排序
SELECT e.sal,e.dpet,sum(e.sal) rank() over(partition by e.dept order by e.sal) FROM T_EMP e;
相同的并列排名的话,后面的增加
SELECT e.sal,e.dpet,sum(e.sal) dense_rank() over(partition by e.dept order by e.sal) FROM T_EMP e;
相同的并列排名的话,后面的不增加继续按照序号进行排序
通过over可以实现分页。
–group by
查询每个部门的员工总数
SELECT COUNT(1),e.deptno FROM T_EMP e GROUP BY e.deptno ORDER BY e.deptno;
以下不能执行,报错不是group by 表达式
SELECT COUNT(1),e.deptno,e.ename FROM T_EMP e GROUP BY e.deptno ORDER BY e.deptno;
需要修改为:
SELECT COUNT(1),e.deptno,e.ename FROM T_EMP e GROUP BY e.deptno,e.ename ORDER BY e.deptno;
才能执行
例如:
查询每个部门的最高工资和最低工资
SELECT t.deptno, MAX(t.sal),MIN(t.sal) from T_EMP t group by t.deptno;
–having
对分组函数后的筛选,紧跟group by
例如:
筛选平均销售额大于两千的
SELECT t.deptno,AVG(t.sal) avg_sal FROM T_EMP t group by t.deptno having avg_sal > 1000;
如果一条语句中有where,group by,order by,having那么执行顺序是什么呢?
where/group by/having/order by
order by 要放到最后
阅读全文
0 0
- Oracle之分组函数
- Oracle-分组函数
- Oracle分组函数
- oracle分组函数
- Oracle分组函数
- oracle 分组函数介绍
- Oracle分组函数
- oracle中的分组函数
- Oracle:分组函数
- SQL Oracle 分组函数
- oracle分组函数
- Oracle分组函数笔记
- oracle分组函数
- oracle 分组函数
- Oracle分组函数
- Oracle中分组函数
- Oracle分组函数
- Oracle的分组函数
- 关于Kotlin "===" 的特性
- 杭电acm1235 求成绩相同的人数
- 训练总结7.31
- iTextSharp使用入门(三)【将txt转换为PDF】
- JavaScript学习(二)动画
- Oracle分组函数
- HDU4289:Tricks Device(最小割 & 拆点)
- hdu 6038 Function
- androi通信——socket
- 选择排序&&堆排序
- java中线程的5种状态
- 【DSP】TMS320F28035 定时器中断例程
- 动态加载Fragment
- ORACLE数据库-查询语句SELECT