#1、查询工资最低的员工信息:last_name,salary
SELECT last_name,salary
FROM employees
WHERE salary = (
SELECT MIN(salary)
FROM employees
);
#2、查询平均工资最低的部门信息
#方式一
SELECT d.*
FROM employees e
INNER JOIN departments d
ON e.`department_id`=d.department_id
GROUP BY department_id
HAVING AVG(salary) = (
SELECT MIN(工资)
FROM (
SELECT AVG(salary) 工资,department_id
FROM employees
GROUP BY department_id
) 新表
);
#方式二
SELECT *
FROM departments
WHERE department_id =(
SELECT department_id
FROM employees
GROUP BY department_id
ORDER BY AVG(salary)
LIMIT 1
);
#3、查询平均工资最低的部门信息和该部门的平均工资
SELECT d.*,AVG(salary)
FROM employees e
INNER JOIN departments d
ON e.`department_id`=d.`department_id`
GROUP BY e.department_id
HAVING AVG(salary) = (
SELECT MIN(工资)
FROM (
SELECT AVG(salary) 工资,department_id
FROM employees
GROUP BY department_id
) 新表
);
#4、查询平均工资最高的job信息
SELECT *
FROM jobs
WHERE job_id =(
SELECT job_id
FROM employees
GROUP BY job_id
ORDER BY AVG(salary) DESC
LIMIT 1
);
#5、查询平均工资高于公司平均工资的部门有哪些?
SELECT department_id,AVG(salary)
FROM employees
GROUP BY department_id
HAVING AVG(salary) > (
SELECT AVG(salary)
FROM employees
);
#6、查询公司中所有manager的详细信息
SELECT *
FROM employees
WHERE employee_id IN (
SELECT DISTINCT manager_id
FROM employees
);
#7、各个部门中最高工资中最低的那个部门的最低工资是多少?
SELECT MIN(salary),department_id
FROM employees
GROUP BY department_id
HAVING department_id =(
SELECT department_id 部门编号
FROM employees
GROUP BY department_id
ORDER BY MAX(salary)
LIMIT 1
);
#8、查询平均工资最高的部门的manager的详细信息:last_name,department_id,email,salary
SELECT last_name,department_id,email,salary
FROM employees
GROUP BY department_id
HAVING AVG(salary)=(
SELECT MAX(工资)
FROM (
SELECT AVG(salary) 工资,department_id 编号
FROM employees
GROUP BY department_id
) 新表
);
MySQL数据库--------子查询练习题
最新推荐文章于 2024-04-07 23:56:42 发布