OracleSQL讲义(Student)(7)

2019-05-18 11:18

s_dept d

where e.dept_id = d.id group by title,d.id,d.name order by 1 desc

例子54: 求出42部门的平均工资?(只显示平均工资) 例子55:求出42部门的平均工资?(显示部门号、平均 工资)

select dept_id,avg(salary) from s_emp where dept_id =42 GROUP by dept_id

如果select后有组函数,则select后只能出现group by后的字段

或者组函数。

例子56: 求出各部门的平均工资?

(要求显示:部门编号、部门名称(地区名称+部门名称)、平均工资) select d.id,r.name,d.name,avg(salary) from s_emp e, s_dept d,s_region r

where e.dept_id = d.id and d.region_id = r.id group by d.id,r.name,d.name

例子57: 求出平均工资高于2000的员工?

Select first_name,avg(salary) From s_emp

Group by first_name Having avg(salary) >= 2000 十五、

例子58:求出谁的工资最低?

Select first_name,salary from s_emp Where salary=(select min(salary) from S_emp)

子查询:1、放在括号里面的查询

2、先执行子查询,再执行主查询。 例子59: 求出谁的工资是750? 例子60: 谁和'Smith'做同一个职位? select first_name,title from s_emp

where title = (select title from s_emp where last_name = 'Smith')

例子61: 哪些人是员工?(子查询) 子查询

Select id,first_name From s_emp

Where id not in(select manager_id from s_emp Where manager_id is not null) Select m.id,m.first_name

From s_emp e right outer join s_emp m on e.manager_id = m.id where e.first_name is null 或select m.id,m.first_name from s_emp e,s_emp m Where e.first_name is null and e.manager_id(+) =m.id

外连接: 子查询:

--- 多列子查询:

例子62:哪些员工的工资和本部门的平均工资一致? Select dept_id,first_name,salary from s_emp Where (dept_id,salary) in (select dept_id,avg(salary) From s_emp group by dept_id )

例子63:哪些部门的平均工资比32部门的平均工资高?

select dept_id, avg(salary)from s_emp group by dept_id

having avg(salary) > (select avg(salary) from s_emp where dept_id = 32 group by dept_id)

例子64:查询和42部门员工职位相同的所有员工的姓名?

select title,first_name from s_emp where title in (select title from s_emp where dept_id=42)

例子65:找出与Carmen同部门的员工信息

select id,first_name,salary,dept_id from s_emp where dept_id=(select dept_id from s_emp where first_name='Carmen') 例子66:

找出比ben早入职的员工

select first_name,start_date from s_emp

where start_date < (select start_date from s_emp where first_name='Ben')

使用子查询:找出哪些员工在亚洲工作,并打印出全名,部门名,薪资

Select r.name,d.name,e.first_name,

※TopN 查询 1. 工资前五名的员工

Select first_name,salary from (select *from s_emp Order by salary desc)

Where rownum (把符合条件的数据重新编号)<=5 分页 Select

first_name,salary

from

(select

rownum

mynu,first_name,salay from s_emp order by salary desc) Where mynu between 5 and 10


OracleSQL讲义(Student)(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:地基与基础试题库(含答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: