对牛客SQL题目的记录与思考(一)

本文记录了牛客SQL实战中关于查询部门最高薪资和次高薪资员工的题目,详细分析了错误示例及正确解题思路。涉及窗口函数、分组聚合以及避免嵌套查询的技巧,对于SQL学习者有很好的参考价值。
摘要由CSDN通过智能技术生成

下面的题目对应牛客SQL实战的12到18题。

  1. 获取每个部门中当前员工薪水最高的相关信息select
    这个问题有一定的难度,难度主要在要求按部门查找,我在做的过程中出现了以下几次错误,以下是比较典型的两种:
    1.select dept_no,dept_emp.emp_no,max(salary) as maxSalary
     from dept_emp inner join salaries
     on dept_emp.emp_no=salaries.emp_no
     group by dept_no
     order by dept_no
     使用group by后select后面只能接使用聚合函数的列(max(salary))、group by子句后的列(dept_no),对于非聚合的列(dept_emp.emp_no)则只显示其第一条记录。 因此会出错。
    2.select dept_no,dept_emp.emp_no,salary as maxSalary
     from dept_emp inner join salaries
     on dept_emp.emp_no=salaries.emp_no
     where salary in
     (select max(salary) from
     dept_emp inner join salaries
     on dept_emp.emp_no=salaries.emp_no
     group by dept_no)
     order by dept_no
     这里主要是一些细节问题没有考虑到,部门d004有员工的工资(非最高)与d002的最高工资相同,即部门d004除了最高工资外,还
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值