Oracle 子查询和组函数练习
SELECT * FROM emp;

SELECT * FROM dept;

1、查询公司员工工资的最大值,最小值,平均值和总和。
SELECT MAX(sal) AS 工资最大值, MIN(sal) AS 工资最小值
, AVG(sal) AS 工资平均值, SUM(sal) AS 工资总和
FROM emp;

2、查询各 job 的员工工资的最大值,最小值,平均值和总和。
SELECT job, MAX(sal), MIN(sal)
, AVG(sal), SUM(sal)
FROM emp
GROUP BY job;

3、选择具有各个 job 的员工人数
SELECT job, COUNT(job) AS 人数
FROM emp
GROUP BY job;

4、显示平均工资 >2000 的职位
SELECT job
FROM emp
GROUP BY job
HAVING AVG(sal) > 2000;

5、计算工资在 2000 以上,各种职位的平均工资大于 3000 的职位及平均工资。
SELECT job, AVG(sal)
FROM emp
WHERE sal > 2000
GROUP BY job
HAVING AVG(sal) > 3000;

6、找出每个部门的最高和最低工资
SELECT deptno, MAX(sal) AS 最高工资, MIN(sal) AS 最低工资
FROM emp
GROUP BY deptno;

7、显示出工作名称 (job) 中包含"MAN"的员工的平均工资,最高工资,最低工资及工资的和。
SELECT AVG(sal) AS 平均工资, MAX(sal) AS 最大工资
, MIN(sal) AS 最小工资, SUM(sal) AS 工资总和
FROM emp
WHERE job LIKE '%MAN%';

8、显示出 20 号部门的员工人数
SELECT deptno, COUNT(empno) AS 员工人数
FROM emp
WHERE deptno = 20
GROUP BY deptno;

9、列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号。
SELECT ename AS 雇员姓名
FROM emp
WHERE deptno = (
SELECT deptno
FROM dept
WHERE dname = 'SALES'
);

10、列出薪金高于公司平均水平的所有雇员
SELECT *
FROM emp
WHERE sal > (
SELECT AVG(sal)
FROM emp
);

11.查询与“SCOTT”在同一个部门的员工
SELECT *
FROM emp
WHERE deptno = (
SELECT deptno
FROM emp
WHERE ename = 'SCOTT'
);

12.查找不在销售部 (SALES) 和财务部 (ACCOUNTING) 工作的雇员编号、姓名和部门编号。
SELECT empno, ename, deptno
FROM emp
WHERE deptno NOT IN (
SELECT deptno
FROM dept
WHERE dname = 'ACCOUNTING'
OR dname = 'SALES'
);

13.在 EMP 表中,找出每个超过他所在部门平均工资的员工编号,员工名称,薪水和部门编号。
SELECT empno, ename, sal, e2.deptno
FROM emp e1, (
SELECT deptno, AVG(sal) AS avgsal
FROM emp
GROUP BY deptno
) e2
WHERE e1.deptno = e2.deptno
AND sal > avgsal;

14、列出某些雇员的姓名和薪金,条件是他们的薪金等于部门 30 中任何一个雇员的薪金。
SELECT ename, sal
FROM emp
WHERE sal = ANY (
SELECT sal
FROM emp
WHERE deptno = 30
);
SELECT ename, sal
FROM emp
WHERE sal IN (
SELECT sal
FROM emp
WHERE deptno = 30
);

15、列出各个部门 MANAGER(经理)的最低薪金
SELECT deptno, MIN(sal)
FROM emp
WHERE job = 'MANAGER'
GROUP BY deptno;

Oracle 子查询和组函数练习的更多相关文章
- oracle 子查询和组合函数
oracle 子查询和组合函数 --查询与"SCOTT"在同一个部门的员工 select empno,ename,deptno from emp where deptno in ( ...
- 【软件实施面试】MySQL和Oracle联合查询以及聚合函数面试总结
软件实施面试系列文章第二弹,MySQL和Oracle联合查询以及聚合函数的面试总结.放眼望去全是MySQL,就不能来点Oracle吗?之前面过不少公司,也做过不少笔试题,现在已经很少做笔试题了.你肚子 ...
- Oracle子查询相关内容(包含TOP-N查询和分页查询)
本节介绍Oracle子查询的相关内容: 实例用到的数据为oracle中scott用户下的emp员工表,dept部门表,数据如下: 一.子查询 1.概念:嵌入在一个查询中的另一个查询语句,也就是说一个查 ...
- 一道Oracle子查询小练习
一道Oracle子查询小练习 昨天晚上躺在床上看Oracle(最近在学习这个),室友说出个题目让我试试.题目如下: 有如下表结构,请选择出成绩为前三名的人的信息(如果成绩相同,则算并列),表名为t ...
- 2.2 Oracle之DML的SQL语句之多表查询以及组函数
一.SQL的多表查询: 1.左连接和右连接(不重要一方加(+)) SELECT e.empno,e.ename,d.deptno,d.dname,d.loc FROM emp e,dept d WHE ...
- 【2017-03-12】SQL Sever 子查询、聚合函数
一.子查询 子查询:把一条查询语句,当做值来使用子句的查询结果必须是一列子句可以返回多行数据,但必须是一列 子句返回的值为一个值的时候: 例如: 我只知道c026这个编号,我要查询比这个车价格低的全部 ...
- Oracle子查询之简单子查询
Oracle 简单子查询 顾名思义,简单子查询是嵌套在 SQL 语句中的另一个SELECT 语句,并且子查询只返回一列数据 1,单行子查询: 子查询 (内查询) 在主查询之前一次执行完成.子查询的结果 ...
- Oracle 子查询
1.子查询在SELECT.UPDATE.DELETE语句内部可以出现SELECT语句.内部的SELECT语句结果可以作为外部语句中条件子句的一部分,也可以作为外部查询的临时表.子查询的类型有: ① 单 ...
- oracle 子查询因子化 浅谈(with的使用)
近来学习oracle,想要提高自己所写语句的效率和易读性,今天的笔记是关于子查询因子话这么一个东西 因子化的查询不一定可以提高效率,但是一定可以再提高程序的可读性方面成效显著 --with 语句 wi ...
随机推荐
- CentOS7.2下安装mongoDB3.2.8
最近在又在倒腾MongoDB,把安装配置的相关命令贴出来 1.下载 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70- ...
- 关于变长数组的一点小想法-C语言定义数组但是数组长度不确定怎么办
很多数据机构,比如栈,链表等,都可以动态分配存储空间 那么数组呢?一般声明时都要指定数组长度,那么数组可以实现动态分配么? 假设数组存的是int型 那么 你先申请10个元素 int* a = (int ...
- docker使用host模式启动nginx
mkdir -p /root/nginx-docker-demo/html docker run --network=host --rm --name mynginx --volume /root/n ...
- 调试android chrome web page简明备忘
必备工具 adb tools.android chrome 先开启手机调试模式 adb forward tcp:9919 localabstract:chrome_devtools_remote 成功 ...
- [php]手动搭建php开发环境(排错)
前提:针对自己的系统下载相应的php.apache.mysql,安装完毕后按照以下去配置httpd.conf和php.ini 本人用的是php5.6.4和apache2.4.4 一.Apache : ...
- [BZOJ2809&1455&1367]解题报告|可并堆
其实非常好理解..就是可以可以合并起来的两个堆嘛>< 2809: [Apio2012]dispatching Description 在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依 ...
- Web安全的三个攻防姿势
原文地址:https://segmentfault.com/a/1190000011601837 作者: zwwill_木羽 关于Web安全的问题,是一个老生常谈的问题,作为离用户最近的一层,我们大前 ...
- 远程工具(SSH Secure)连接Centos出现中文乱码问题的解决办法
问题原因 使用远程工具进行连接时,如果linux有中文文件或目录,显示时会出现乱码,原因是linux编码是UTF-8,而远程工具默认是当前系统本地编码即GBK.所以解决方案是统一两者编码就OK了,但是 ...
- Perl6多线程2: Promise new/keep/bread/status/result
来源于个人理解的翻译. 创建一个 promise: my $p = Promise.new; 可以打印运行 的Promise 状态: my $p = Promise.new(); $p.then({s ...
- shell将多行文本重定向到文件【转】
在shell中,使用Here Document方式将文本重定向到文件,格式如下: ( cat << EOF 要写的文本 EOF ) > 目标文件 示例test.sh: #! /bin ...