软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 数据库 -> OracleSQL经典查询练手第四篇 -> 正文阅读

[数据库]OracleSQL经典查询练手第四篇


Oracle SQL 经典查询练手第四篇
本文分享的是OracleSQL的经典查询第四篇,仅仅是作者自己的见解,如有问题,希望您给出建议或者方法。同时,欢迎广大读者们补充,如果您有经典的查询方式也可以拿出来我们共同分享,共同成长,共同进步。
本计算机上使用的是Oracle11.2.0版本,使用scott用户登陆。使用的是系统自带的表。
表结构:
describe employees;
[img]http://img.blog.csdn.net/20160330161829294?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

describe departments;
[img]http://img.blog.csdn.net/20160330161855966?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
describe locations;
[img]http://img.blog.csdn.net/20160330161908247?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

select from employees;(由于空间限制,此表的行和列都没有截取全部,一共107行,11列)
[img]http://img.blog.csdn.net/20160330161921123?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

select from departments;(由于空间限制,此表的列截取了全部,行没有截取全部,一共27
[img]http://img.blog.csdn.net/20160330161930482?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

select from locations;
由于空间限制,此表的行和列都没有截取全部,一共23行,6
[img]http://img.blog.csdn.net/20160330161939389?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

----hr用户----
1.  各个部门平均、最大、最小工资、人数,按照部门号升序排列。
2.   各个部门中工资大于5000的员工人数。
3.  各个部门平均工资和人数,按照部门名字升序排列。
4. 列出每个部门中有同样工资的员工的统计信息,列出他们的部门号,工资,人数。
5. 列出同部门中工资高于1000 的员工数量超过2 人的部门,显示部门名字、地区名称。
6. 哪些员工的工资,高于整个公司的平均工资,列出员工的名字和工资(降序)。
7. 哪些员工的工资,介于50号 和80号部门平均工资之间。 
8. 所在部门平均工资高于5000 的员工名字。
9. 列出各个部门中工资最高的员工的信息:名字、部门号、工资。
10.最高的部门平均工资是多少。 
 
--1. 各个部门平均、最大、最小工资、人数,按照部门号升序排列。
select department_id ,avg(salary),max(salary),min(salary),count(*) from employees group by department_id order
by department_id asc;
[img]http://img.blog.csdn.net/20160330161954670?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--2. 各个部门中工资大于5000的员工人数。
select department_id,count(*) from employees where salary>5000 group by department_id; 
[img]http://img.blog.csdn.net/20160330162005608?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--3. 各个部门平均工资和人数,按照部门名字升序排列。  
select d.department_name,avg(e.salary),count(*)  from employees e,departments d where e.department_id=d.department_id group by d.department_name order by d.department_name;

[img]http://img.blog.csdn.net/20160330163507426?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--4. 列出每个部门中有同样工资的员工的统计信息,列出他们的部门号,工资,人数。
select e1.department_id,e1.salary,count(*) from employees e1,employees e2 where
e1.department_id=e2.department_id and e1.salary=e2.salary and e1.employee_id<>e2.employee_id group by
e1.department_id,e1.salary;
(由于空间限制,此表的行和列都没有截取全部,一共23行,3列)
[img]http://img.blog.csdn.net/20160330162023702?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--5. 列出同部门中工资高于1000 的员工数量超过2 人的部门,显示部门名字、地区名称。
(子查询方式)
select * from (select d.department_name,l.city, count(*) cnumber from employees e,departments d ,locations l
where e.department_id=d.department_id and d.location_id=l.location_id and e.salary>100
group by d.department_name,l.city
) where cnumber>2;
(having关键字方式)
select d.department_name,l.city, count(*) from employees e,departments d ,locations l where
e.department_id=d.department_id and d.location_id=l.location_id and e.salary>100
group by d.department_name,l.city having count(*)>2;
[img]http://img.blog.csdn.net/20160330162034671?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--6. 哪些员工的工资,高于整个公司的平均工资,列出员工的名字和工资(降序)。
select e1.first_name||' '||last_name as name ,e1.salary from employees e1 where e1.salary>(select avg(salary) from
employees);
(由于空间限制,此表的行和列都没有截取全部,一共51行,2列)
[img]http://img.blog.csdn.net/20160330162051234?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--7. 哪些员工的工资,介于50号 和80号部门平均工资之间。 
select e1.first_name first_name,e1.last_name last_name,e1.salary from employees e1 where e1.salary between
(select avg(salary) from employees where department_id=50)  and (select avg(salary) from employees where
department_id=80);(由于空间限制,此表的行和列都没有截取全部,一共43行,3列)
[img]http://img.blog.csdn.net/20160330162152970?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--8. 所在部门平均工资高于5000 的员工名字。
select  e.first_name first_name,e.last_name last_name from employees e where department_id in(select
department_id from employees group by department_id having avg(salary)>5000);  (由于空间限制,此表的行和列
都没有截取全部,一共54行,2列)
[img]http://img.blog.csdn.net/20160330162210017?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--9. 列出各个部门中工资最高的员工的信息:名字、部门号、工资。
(子查询方式)
select e1.first_name first_name,e1.last_namelast_name,e1.department_id,e1.salary from employees e1 ,(select
max(salary) maxsalary,department_id from employees e group by department_id) e2 where e1.salary=e2.max
 salary and e1.department_id=e2.department_id;
(in关键字方式)
select e1.first_name first_name,e1.last_namelast_name,e1.department_id,e1.salary  from employees e1 where
(e1.department_id,salary)in (select department_id,max(salary) from employees e group by department_id);
[img]http://img.blog.csdn.net/20160330162225330?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

--10. 最高的部门平均工资是多少。 
(子查询方式)
select e.sal from (select avg(salary) sal,department_id from employees group by  department_id order by sal desc)
e where rownum=1;
(聚合函数方式)
select max(e.sal) from (select avg(salary) sal from employees group by department_id) e;
[img]http://img.blog.csdn.net/20160330162234956?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

作者水平有限,难免有错误之处,殷切希望广大读者批评指正。
转载请注明出处:http://blog.csdn.net/gcw1024
......显示全文...
    点击查看全文


上一篇文章      下一篇文章      查看所有文章
2016-04-01 16:56:17  
数据库 最新文章
Python&MySQL&PyQt
最新用python来操作mysql完全解析
mongodb的安装详解
1.PDO简介
《MySQL必知必会学习笔记》:高级联结
【翻译自mos文章】怎么对Microsoft(Office)
MyCAT全局表描述及示例
ocp
关于SQL数据表存储过程表名前缀换成dbo代码
数据库调优教程(二)慢查询数据准备
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2018年1日历
2018-1-16 17:26:46
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --