文章目录
进阶练习
进阶练习
案例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
);
本文原文地址:https://blog.youkuaiyun.com/qq_43952245/article/details/90546114
SQL进阶查询练习案例分析
文章给出多个SQL进阶练习案例,包括查询同部门员工信息、比平均工资高的员工信息等。针对每个案例都给出了分析步骤,如先查询关键数据,再在此基础上进行进一步查询筛选,帮助理解SQL查询逻辑。

子查询之进阶练习&spm=1001.2101.3001.5002&articleId=93159189&d=1&t=3&u=dc37a90fb60546f3862ce4304b669e73)
876

被折叠的 条评论
为什么被折叠?



