MySQL数据库--------子查询练习题

#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

	) 新表
);



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值