2.oracle分页,找到员工表中薪水大于本部门平均薪水的员工
ROWNUM的知识点
A ROWNUM依照oracle的默认机制生成。
B rownum仅仅能使用<=
<号,不能使用>
>=rownum的实现机制
rownum表示,返回的结果集的行号(是一个属性,固化到一行之中。不会由于你排序,而发生变化)。没有第一行,就没有第二行;没有第二行就没有第三行。
Oracle Top-N
|
select rownum,empno,ename,sal from (select empno,ename,sal from emp order by sal desc) where rownum <= 3;
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt=""> |
4
求5=<x<=8之间的数据(分页)
|
select r,empno,ename,sal from ( select rownum r,empno,ename,sal from ( select empno,ename,sal from emp order by sal desc ) where rownum <=8 ) where r >= 5; |
总结:内存排序。外层选
Oracle分页思想总结:
(内层排序。外层选,须要三层查询)
内:排序
中:使用rownum选择前n条。并给rownum指定一个别名,以供最外层过滤使用。
外:去掉前m条结果。
找到员工表中薪水大于本部门平均薪水的员工
员工表
本部门平均薪水思路1:查员工的薪水
本部门平均薪水本部门关系
要去本部门的薪水,须要求部门的薪水,要对部门分组è分组
思路2:查找员工表
和
部门薪水表
=====》多表查询
思路3:等值连接条件
方法1:
|
select e.empno,e.ename,e.sal,d.avgsal from emp e, (select deptno,avg(sal) avgsal from emp group by deptno) d where e.deptno=d.deptno and e.sal > d.avgsal; |
方法2
|
相关子查询:主查询的參数,让子查询用,通常是通过别名技术。 |
|
一般子查询:子查询的结果,被主查询使用 |
|
select empno,ename,sal,(select avg(sal) from emp where deptno = e.deptno) avgsal from emp e where sal > ( select avg(sal) from emp where deptno = e.deptno ); |
2.oracle分页,找到员工表中薪水大于本部门平均薪水的员工的更多相关文章
- Oracle 取两个表中数据的交集并集差异集合
Oracle 取两个表中数据的交集 关键字: Oracle 取两个表中数据的交集 INTERSECT Oracle 作为一个大型的关系数据库,日常应用中往往需要提取两个表的交集数据 例如现有如下表,要 ...
- [oracle/sql]求员工表中每个部门里薪水最高的员工,那种sql最优?
开始正题前,先把我的数据库环境列出: # 类别 版本 1 操作系统 Win10 2 数据库 Oracle Database 11g Enterprise Edition Release 11.2.0. ...
- Oracle 11g对大表中添加DEFAULT值的NOT NULL字段速度有大幅度的提升
在一张2000万的表上增加了一个字段并字段一个默认值,执行这条语句(alter table tablename add new_col default ‘col’)一个小时没有执行完,问我有没有其他解 ...
- Oracle分页存储过程及PLSQL中的调用脚本
撰写过程:网上搜集测试了好多的Oracle分页存储过程代码,经整理后终于通过测试,特分享给大家 测试步骤:1.运行创建包命令;2.运行创建存储过程命令;3.运行调用分页存储过程语句 测试环境:wind ...
- Oracle数据库--解决单张表中数据量巨大(大数据、数据量上百万级别,后查询,更新数据等耗时剧增)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/QQ578473688/article/details/54561397 思路1:采用备份表 备份表中 ...
- Oracle、SQLServer 删除表中的重复数据,只保留一条记录
原文地址: https://blog.csdn.net/yangwenxue_admin/article/details/51742426 https://www.cnblogs.com/spring ...
- oracle数据库的一个表中,怎么设置字段的默认值
如果表已经存在,用如下方法设置默认值. alter table 表名 modify 字段名 default 默认值; 如test表中设置address字段为'浙江省',可用如下语句: alter ta ...
- 通过oracle闪回查看表中值的变更履历信息
http://www.oracle.com/technetwork/cn/articles/week1-10gdba-093837-zhs.html 得到电影而不是图片:闪回版本查询 不需要设置,立即 ...
- Oracle 函数 “判断数据表中不存在的数据,才允许通过”
create or replace function mca_detail_material_val(p_material_code VARCHAR2, --实参 p_material_name VA ...
随机推荐
- 编写Shell脚本的最佳实践,规范二
需要养成的习惯如下: 代码有注释 #!/bin/bash # Written by steven # Name: mysqldump.sh # Version: v1.0 # Parameters : ...
- shortcut(NOIP模拟赛)(裸的排序)
原题: Description Mirek有一条每天从他家去大学工作的最喜欢的路.这个路径由若干个部分组成,且每个部分是10米长的直线.每一个部分是直线连接(没有拐弯)上一个部分或垂直连接上一个部分. ...
- 和菜鸟一起学c之gcc编译过程及其常用编译选项【转】
转自:http://blog.csdn.net/eastmoon502136/article/details/8162626 版权声明:本文为博主东月之神原创文章,未经博主允许不得转载. 上篇文章,知 ...
- Windows基础-使用XAudio2播放音频(本质是WASAPI)
对于常见的音频播放,使用XAudio2足够了. 时间是把杀猪刀,滑稽的是我成了猪 早在Windows Vista中,M$推出了新的音频架构UAA,其中的CoreAudio接替了DSound.WaveX ...
- ZOJ 3820:Building Fire Stations(树的直径 Grade C)
题意: n个点的树,边长全为1,求找出两个点,使得树上离这两个点距离最远的那个点,到这两个点(中某个点就行)的距离最小. 思路: 求树直径,找中点,删除中间那条边(如果直径上点数为奇数,则删任何一侧都 ...
- Appium+python自动化22-Appium Desktop【转载】
Appium Desktop 原滋原味的官方文档 Appium Desktop是一款用于Mac.Windows和Linux的开源应用,它提供了Appium自动化服务器在一个漂亮灵活的UI中的强大功能. ...
- python接口自动化1-发送get请求【转载】
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E ...
- 处理eq问题
using System;using System.Diagnostics;using System.Drawing;using System.IO;using System.Windows.Form ...
- vagrant virtualbox VM inaccessible解决办法
vagrant无法访问的提示:Please open VirtualBox and clear out your inaccessible virtual machines or find a way ...
- [BZOJ1044][HAOI2008]木棍分割 二分+贪心+dp+前缀和优化
1044: [HAOI2008]木棍分割 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4112 Solved: 1577 [Submit][St ...