案例1:查询和Zlotkey相同部门的员工姓名和工资
分析:①查询Zlotkey的部门编号;②:在①的基础上进行查找姓名和工资
SELECT last_name,salary FROM employees WHERE department_id = ( SELECT department_id FROM employees WHERE last_name = 'Zlokey'; );案例2:查询工资比公司平均工资高的员工的员工号、姓名和工资
分析:①查询公司的平均工资;②:在①的基础上查询员工号、姓名和工资
SELECT employee_id,last_name,salary FROM employees WHERE salary > ( SELECT AVG(salary) FROM employees );案例3:查询各部门中工资比本部门的平均工资高的员工的员工号,姓名和工资
分析:①查询每个部门的平均工资;②查询员工的工资并和对应的部门平均工资比较筛选
SELECT employee_id,last_name,e.salary,e.department_id FROM employees e INNER JOIN ( SELECT AVG(salary) avs,department_id FROM employees GROUP BY department_id ) avgSalary ON e."department_id" = avgSalary.'department_id' WHERE e.salary > avs;案例4:查询和姓名中包含字母u的员工在相同部门的员工的员工号和姓名
分析:①:查询姓名中包含字母u的员工的部门编号 ②:在①的基础上查找员工的员工号和姓名
SELECT employee_id,last_name FROM employees WHERE employee_id IN ( SELECT department_id FROM employees WHERE last_name LIKE '%e%' );案例5:查询在部门的location_id为1700的部门工作的员工的员工号
分析:①查询location_id为1700的部门编号;②:在①的基础上查询
SELECT employee_id FROM employees WHERE department_id = ANY( SELECT department_id FROM departments WHERE location_id = 1700 );案例6:查询管理者是King的员工姓名和工资
分析:查询姓名为King的employee_id–>将其作为manager_id并查询满足条件的记录
SELECT last_name,salary FROM employees WHERE manager_id IN ( SELECT employee_id FROM employees WHERE last_name = 'King' );案例7:查询工资最高的员工姓名,要求first_name和last_name显示为列,类名为’姓名’
分析:查询最高工资–>查询工资最高的员工姓名–>将first_name和last_name连接在一起
SELECT CONCAT(last_name,first_name) "姓名" FROM employees WHERE salary = ( SELECT MAX(salary) FROM employees );