(
EMPLOYEES_ID int Primary key,
EMPLOYEES_NAME varchar(255),
EMPLOYEES_JOB varchar(255),
MANAGER varchar(255),
SALARY money ,
DEPARTMENT_ID int
)
- 列出EMPLOYEES表中各部門的部門號,最高工資,最低工資
select max(SALARY) as 最高工資,min(SALARY) as 最低工資,DEPARTMENT_ID from EMPLOYEES group by DEPARTMENT_ID;
- 列出EMPLOYEES表中各部門EMPLOYEE_JOB爲'CLERK'的員工的最低工資,最高工資
select max(SALARY) as 最高工資,min(SALARY) as 最低工資,DEPARTMENT_ID as 部門號 from EMPLOYEES where EMPLOYEE_JOB = 'CLERK' group by DEPARTMENT_ID;
- 對於EMPLOYEES中最低工資小於1000的部門,列出EMPLOYEE_JOB爲'CLERK'的員工的部門號,最低工資,最高工資
select max(SALARY) as 最高工資,min(SALARY) as 最低工資,DEPARTMENT_ID as 部門號 from EMPLOYEES as b
where EMPLOYEE_JOB ='CLERK' and 1000>(select min(SALARY) from EMPLOYEES as a where a.DEPARTMENT_ID = b.DEPARTMENT_ID) group by b.DEPARTMENT_ID
- 根據部門號由高而低,工資有低而高列出每個員工的姓名,部門號,工資
select DEPARTMENT_ID as 部門號,EMPLOYEE_NAME as 姓名,SALARY as 工資 from EMPLOYEES order by DEPARTMENT_ID desc,SALARY asc
- 列出'張三'所在部門中每個員工的姓名與部門號
select EMPLOYEE_NAME,DEPARTMENT_ID from EMPLOYEES where DEPARTMENT_ID = (select DEPARTMENT_ID from EMPLOYEES where EMPLOYEE_NAME = '張三')
- 列出每個員工的姓名,工作,部門號,部門名
select EMPLOYEE_NAME,EMPLOYEE_JOB,EMPLOYEES.DEPARTMENT_ID,DEPARTMENTS.DEPARTMENT_NAME from EMPLOYEES,DEPARTMENTS where EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID
- 列出EMPLOYEES中工作爲'CLERK'的員工的姓名,工作,部門號,部門名
select EMPLOYEE_NAME,EMPLOYEE_JOB,DEPARTMENTS.DEPARTMENT_ID,DEPARTMENT_NAME from EMPLOYEES,DEPARTMENTS where DEPARTMENTS.DEPARTMENT_ID = EMPLOYEES.DEPARTMENT_ID and DEPARTMENT_JOB = 'CLERK'
- 對於EMPLOYEES中有管理者的員工,列出姓名,管理者姓名(管理者外鍵爲MANAGER)
select a.EMPLOYEE_NAME as 姓名,b.EMPLOYEE_NAME as 管理者 from EMPLOYEES as a,EMPLOYEES as b where a.MANAGER is not null and a.MANAGER = b.EMPLOYEE_ID
- 對於DEPARTMENTS表中,列出所有部門名,部門號,同時列出各部門工作爲'CLERK'的員工名與工作
select DEPARTMENT_NAME as 部門名,DEPARTMENTS.DEPARTMENT_ID as 部門號,EMPLOYEE_NAME as 員工名,EMPLOYEE_JOB as 工作 from DEPARTMENTS,EMPLOYEES
where DEPARTMENTS.DEPARTMENT_ID *= EMPLOYEES.DEPARTMENT_ID and EMPLOYEE_JOB = 'CLERK' - 對於工資高於本部門平均水平的員工,列出部門號,姓名,工資,按部門號排序
select a.DEPARTMENT_ID as 部門號,a.EMPLOYEE_NAME as 姓名,a.SALARY as 工資 from EMPLOYEES as a
where a.SALARY>(select avg(SALARY) from EMPLOYEES as b where a.DEPARTMENT_ID = b.DEPARTMENT_ID) order by a.DEPARTMENT_ID - 對於EMPLOYEES,列出各個部門中平均工資高於本部門平均水平的員工數和部門號,按部門號排序
select count(a.SALARY) as 員工數,a.DEPARTMENT_ID as 部門號 from EMPLOYEES as a
where a.SALARY>(select avg(SALARY) from EMPLOYEES as b where a.DEPARTMENT_ID = b.DEPARTMENT_ID) group by a.DEPARTMENT_ID order by a.DEPARTMENT_ID - 對於EMPLOYEES中工資高於本部門平均水平,人數多與1人的,列出部門號,人數,按部門號排序
select count(a.EMPLOYEE_ID) as 員工數,a.DEPARTMENT_ID as 部門號,avg(SALARY) as 平均工資 from EMPLOYEES as a
where (select count(c.EMPLOYEE_ID) from EMPLOYEES as c where c.DEPARTMENT_ID = a.DEPARTMENT_ID and c.SALARY>(select avg(SALARY) from EMPLOYEES as b where c.DEPARTMENT_ID = b.DEPARTMENT_ID))>1
group by a.DEPARTMENT_ID order by a.DEPARTMENT_ID - 對於EMPLOYEES中低於自己工資至少5人的員工,列出其部門號,姓名,工資,以及工資少於自己的人數
select a.DEPARTMENT_ID,a.EMPLOYEE_NAME,a.SALARY,(select count(b.EMPLOYEE_NAME) from EMPLOYEES as b where b.SALARY < a.SALARY) as 人數 from EMPLOYEES as a
where (select count(b.EMPLOYEE_NAME) from EMPLOYEES as b where b.SALARY<a.SALARY)>5