MySQL经典案例分析---查询平均工资最低的部门信息

本文分析了一个MySQL教学案例,旨在查询平均工资最低的部门信息。通过三种不同方式解析问题,强调了对子查询、分组、排序、条件查询等MySQL知识的理解,并指出在使用MIN(AVG())等语法时的常见错误。最后总结,此类练习有助于深入掌握SQL语法。
摘要由CSDN通过智能技术生成

#一.背景描述:
##来源:尚硅谷MySQL教学98课案例2
##问题:查询平均工资最低的部门信息
##附件:相关数据库 提取码:8r48
#二.问题分析:
该问题中平均工资涉及employees表,部门信息涉及departments表,
可将该问题按步骤拆分:

  1. 查询各部门平均工资
  2. 查询最低部门平均工资
  3. 查询最低部门平均工资对应部门编号
  4. 查询此部门编号对应部门信息
    按此逻辑,尚硅谷的李玉婷老师给出的方案是:
    ##方式一:
    ①各部门平均给工资
    SELECT AVG(salary) ,department_id FROM employees GROUP BY department_id;
    ②查询①结果上的最低平均工资
SELECT MIN(ag)
FROM (
	SELECT AVG(salary) ag,department_id
	FROM employees
	GROUP BY department_id
	) ag_dep;

③查询哪个部门的平均工资=②

SELECT department_id
FROM employees
GROUP BY department_id
HAVING AVG(salary)=(
	SELECT MIN(ag)
	FROM (
		SELECT AVG(salary) ag,department_id
		FROM employees
		GROUP BY department_id
	) ag_dep);

注意:这里SELECT后面只能进行标量子查询,不能查询两列
④接着查询部门信息

SELECT d.*
FROM departments d
WHERE 
  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值