【sql】训练三

1.  Ben的领导是谁(Ben向谁报告)。

SQL>  select first_name,manager_id from employees where manager_id =(select manager_id from employees where first_name='Ben');

 

2.   Ben领导谁。(谁向Ben报告)。

SQL> select first_name,employee_id from employees where manager_id = (select employee_id from employees where first_name='Ben');


3.  哪些员工和Biri(last_name)同部门

SQL> select last_name,department_id from employees where department_id = (select department_id from employees where last_name='Biri');

 

4.  哪些员工跟Smith(last_name)做一样职位

SQL>  select last_name,job_id from employees where job_id = (select distinct job_id from employees where last_name='Smith');

 

5.   哪些员工跟Biri(last_name)不在同一个部门

SQL> select last_name,job_id from employees where job_id not in ((select distinct job_id from employees where last_name='Smith'));

 

6.  整个公司中,最高工资和最低工资相差多少

 SQL>  select max(salary),min(salary),max(salary)-min(salary) gzc from employees;

 

MAX(SALARY) MIN(SALARY)        GZC

----------- ----------- ----------

      24000        2100      21900

7.  显示整个公司的最高工资、最低工资、工资总和、平均工资,保留到整数位。

SQL> select max(salary),min(salary),sum(salary),trunc(avg(salary)) from employees;

 

MAX(SALARY) MIN(SALARY) SUM(SALARY) TRUNC(AVG(SALARY))

----------- ----------- ----------- ------------------

      24000        2100      691416               6461

8.  整个公司有多少个领导

SQL> select count(manager_id) from employees;

 

COUNT(MANAGER_ID)

-----------------

              106

9.  各个部门中工资大于1500的员工人数

SQL> select department_id,count(*) from employees where

  2  salary > 1500 group by department_id;


10.该部门中工资高于1000的员工数量超过2人,列出符合条件的部门:显示部门名字

SQL> select department_name from departments where department_id in (select department_id from employees where salary>1000 group by department_id having count(employee_id)>2);

 

DEPARTMENT_NAME

------------------------------

Finance

Purchasing

Executive

Shipping

Sales

IT

 

6 rows selected.

 

11. 哪些员工的工资,高于整个公司的平均工资,列出员工的名字和工资(降序)

SQL> select first_name,salary from employees where salary > (select avg(salary) from employees);

 

12. 哪些员工的工资,介于3233部门平均工资之间

SQL> select first_name,salary from employees where salary between (select avg(salary) from employees where department_id =33)

  2  and

  3  ( select avg(salary) from employees where department_id =32 );

 

13.列出各个部门中工资最高的员工的信息:名字、部门号、工资

SQL> select department_id,last_name,salary from employees where (department_id,salary) in (select department_id,max(salary) from employees group by department_id) order by 1;

 

14.哪些部门的人数比32号部门的人数多

SQL> select department_id,count(last_name) from employees group by department_id

  2  having count(last_name) > (select count(last_name) from employees where department_id = 32);

 

 

15. 求出每个部门的雇员数量

SQL> select department_id,count(first_name) from

  2  employees group by department_id;

 

16. 查询出比7654工资要高的全部雇员的信息

SQL> select FIRST_NAME,SALARY from employees where salary > 7656;

 

 

17. 要求查询工资比7654高,同时与7788从事相同工作的全部雇员

 

SQL> select first_name,salary from employees where salary > 7654 and job_id = (select job_id from employees where salary = 7788);

 

 

请使用浏览器的分享功能分享到微信等