oracle 分组查询 子查询 统计查询 FROM加子查询临时表 查询高于平均工资 示例代码

---求平均工资
SELECT AVG(sal) FROM emp;
-----------大于平均工资
SELECT e.ename,e.job,e.sal
FROM emp e
WHERE e.sal>(SELECT AVG(sal) FROM emp)

--------
--e领导编号=m雇员编号
--emp雇员表,dept部门表
SELECT
e.ename 雇员姓名,e.job 雇员职位,e.sal 雇员工资,
m.ename 领导姓名,m.job 领导职位,
d.dname 部门名称
FROM emp e,emp m,dept d
WHERE e.sal>(
SELECT AVG(sal) FROM emp)
AND e.mgr=m.empno(+)
AND e.deptno=d.deptno

-----------加FROM子查询语句,统计人数

SELECT
e.ename 雇员姓名,e.job 雇员职位,e.sal 雇员工资,
m.ename 领导姓名,m.job 领导职位,
d.dname 部门名称,dtemp.count 部门人数
FROM emp e,emp m,dept d,(
SELECT deptno dno,COUNT(empno) count
FROM emp
GROUP BY deptno) dtemp
WHERE e.sal>(
SELECT AVG(sal) FROM emp)
AND e.mgr=m.empno(+)
AND e.deptno=d.deptno
AND dtemp.dno(+)=d.deptno

----加个工资表。工资等级

SELECT
e.ename 雇员姓名,e.job 雇员职位,e.sal 雇员工资,
m.ename 领导姓名,m.job 领导职位,
d.dname 部门名称,dtemp.count 部门人数,
s.grade 工资等级
FROM emp e,emp m,dept d,(
SELECT deptno dno,COUNT(empno) count
FROM emp
GROUP BY deptno) dtemp,salgrade s
WHERE e.sal>(
SELECT AVG(sal) FROM emp)
AND e.mgr=m.empno(+)
AND e.deptno=d.deptno
AND dtemp.dno(+)=d.deptno
AND e.sal BETWEEN s.losal AND s.hisal

--61m-----使用此工资等级的人数
SELECT s1.grade sg,COUNT(e1.empno) count
FROM emp e1,salgrade s1
WHERE e1.sal BETWEEN s1.losal AND s1.hisal
GROUP BY s1.grade

--第七部--嵌入工资等级的人数,以s1.grade为分组
----
SELECT s1.grade sg,COUNT(e1.empno) count
FROM emp e1,salgrade s1
WHERE e1.sal BETWEEN s1.losal AND s1.hisal
GROUP BY s1.grade;

----完成体
SELECT
e.ename 雇员姓名,e.job 雇员职位,e.sal 雇员工资,
m.ename 领导姓名,m.job 领导职位,
d.dname 部门名称,dtemp.count 部门人数,
s.grade 工资等级,stemp.count 等级人数
--m领导,
FROM emp e,emp m,dept d,(
SELECT deptno dno,COUNT(empno) count
FROM emp
GROUP BY deptno) dtemp,
--dtemp 部门人数
salgrade s,(
SELECT s1.grade sg,COUNT(e1.empno) count
FROM emp e1,salgrade s1
WHERE e1.sal BETWEEN s1.losal AND s1.hisal
GROUP BY s1.grade
) stemp
--stemp 工资等级人数
WHERE e.sal>(
SELECT AVG(sal) FROM emp)
AND e.mgr=m.empno(+)
AND e.deptno=d.deptno
AND dtemp.dno(+)=d.deptno
AND e.sal BETWEEN s.losal AND s.hisal
AND s.grade=stemp.sg;
时间: 2024-10-27 06:25:23

oracle 分组查询 子查询 统计查询 FROM加子查询临时表 查询高于平均工资 示例代码的相关文章

查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名

如题: 查询出部门名称.部门的员工数.部门的平均工资.部门的最低收入雇员姓名和最高收入雇员的姓名 这是oracle的默认Scott用户下面的emp 和 dept 表间的一道思考题. 雇员表(emp) 记录了每个雇员的基本信息 NO  字段         类型            描述 1     empno       Number(4)    雇员编号 2     ename       Varchar2(10)      雇员姓名 3     job         Varchar2(9

oracle分组查询

分组函数 在分组函数中,如果有一个查找项分组,其他项必须也分组,比如下面的语句会报错,因为sal分组了,而ename没有分组: 1.显示工资最高的员工: 2.显示所有员工的平均工资: 2.1使用系统函数: 2.2自定义计算: 3.显示工资高于平均工资的员工信息: 对查询结果进行分组统计: 4.查询每个部门的最高工资和平均工资: 5.显示每个部门的每种岗位的平均工资与最高工资: 6.显示平均工资低于2000的部门号和它的平均工资: 对数据分组的总结 1 分组函数只能出现在选择列表.having.o

MSSQL 4表联查,子查询,函数统计,分组条件查询综合应用实例

1 SELECT 2 [UserName] 3 ,[Yhxm] 4 ,[Qx] 5 ,[Phone] 6 ,[Number] = COUNT([UserName]) 7 FROM 8 (SELECT 9 [UserName] = A.[username] 10 ,[Yhxm] = B.[xm] 11 ,[Qx] = D.[P_Power] 12 ,[Phone] = B.[dh] 13 ,[DayCount] = (SELECT COUNT(*) FROM [Caihuashun_FuJian_

Oracle基础知识笔记(11) 建表、更新、查询综合练习

有某个学生运动会比赛信息的数据库,保存了如下的表: 运动员sporter(运动员编号sporterid,运动员姓名name,运动员性别sex,所属系号department) 项目item(项目编号itemid,项目名称itemname,项目比赛地点location) 成绩grade(运动员编号id,项目编号itemid,积分mark) 请用SQL语句完成如下功能: 1.  建表,并在相应字段上增加约束: 定义各个表的主键和外键约束: 运动员的姓名和所属系别不能为空: 积分要第为空值,要么为6,4

MySQL多表查询之外键、表连接、子查询、索引

一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的.所以说,如果谈到了外键,一定是至少涉及到两张表.例如下面这两张表: 上面有两张表:部门表(dept).员工表(emp).Id=Dept_id,而Dept_id就是员工表中的外键:因为员工表中的员工需要知道自己属于哪个部门,就可以通过外键Dep

子查询三(在FROM子句中使用子查询)

FROM子句中使用子查询一般都是返回多行多列,可以将其当作一张数据表 示例一.查询出每个部门的编号,名称,位置,部门人数,平均工资 SELECT d.deptno,d.dname,d.loc,temp.con,temp.avgsal FROM dept d,(SELECT deptno dno,COUNT(empno) con,ROUND (AVG(sal),2) avgsal FROM emp GROUP BY deptno) temp WHERE d.deptno=temp.dno; 示例二

子查询二(在HAVING子句中使用子查询)

HAVING子句的主要功能是对分组后的数据进行过滤,如果子查询在HAVING中表示要进行分组过滤,一般返回单行单列的数据 示例一.查询部门编号,人数,平均工资,并且要求这些部门的平均工资高于公司的平均工资 --查询部门编号,人数,平均工资,并且要求这些部门的平均工资高于公司的平均工资 SELECT e.deptno,COUNT(e.empno),ROUND(AVG(e.sal),2) FROM emp e GROUP BY e.deptno HAVING AVG(e.sal)>( SELECT

MySQL数据库学习笔记(六)----MySQL多表查询之外键、表连接、子查询、索引

注:本文转自:http://www.cnblogs.com/smyhvae/p/4042303.html 本章主要内容: 一.外键 二.表连接 三.子查询 四.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的.所以说,如果谈到了外键,一定是至少涉及到两张表.例如下面这两张表: 上面有两

子账号表的设计(不用递归实现查询,同一张表做外键)

最近公司在做<资管系统>账号管理部分需要得到所有子账号.父账号等等信息.个人觉得用递归查询比较繁琐,于是设计了以下表 关键字段:账号id,父账号.顶级账号.账号层次(也就是树的级别). 查询思路:查找顶级账号用层这个字段直接搞定 查找某个账号的子账号用该账号的顶级账号和层搞定 查找父账号用该账号的顶级账号和层搞定 设计难点:一张表外键关联到自己.添加修改删除时对数据的有效性有很大的保障 提供源码(包含查询方法),需要其他字段自行增加 (勿喷) 表和数据 -- -----------------