当前位置: 首页 > news >正文

d202552-sql

一、184. 部门工资最高的员工 - 力扣(LeetCode)

要找到每个部门工资最高的

使用窗口函数 加排序函数

排序函数用rank dense_rank都行  把最高相同的找出来就行

 

select *,
dense_rank() over(partition by departmentId  order by Salary desc) as 'rank' 
from Employee

 有没有朋友  也想过为啥这里不能直接用where

select *,
dense_rank() over(partition by departmentId  order by Salary desc) as 'rank' 
from Employee
where rank = 1
1. ​​SQL 执行顺序​

SQL 查询的逻辑执行顺序为:

  1. FROM → 2. WHERE → 3. GROUP BY → 4. HAVING → 5. SELECT → 6. ORDER BY
    ​关键点​​:WHERE 子句在 SELECT 之前执行,而 SELECT 中定义的别名(如 rank)此时尚未生成,因此无法被识别

把上述那个表当成临时表,来进行两表连接 

select d.name as 'Department',e.name as 'Employee',e.salary as 'Salary'
from Department d
join (select *,dense_rank() over(partition by departmentId  order by Salary desc) as 'rank' from Employee) e
on d.id = e.departmentId 
where e.rank = 1

 搞定 说实话窗口函数真好用!!!!!!

二、185. 部门工资前三高的所有员工 - 力扣(LeetCode)

同理上题

但是这里的排序函数只能 DENSE_RANK()​,相同值分配相同排名,后续排名连续

where 里面的条件在加2个

select d.name as 'Department',e.name as 'Employee',e.salary as 'Salary'
from Department d
join (select *,dense_rank() over(partition by departmentId  order by Salary desc) as 'rank' from Employee) e
on d.id = e.departmentId 
where e.rank = 1 or e.rank = 2 or e.rank = 3

 

三、577. 员工奖金 - 力扣(LeetCode)

需要使用左连接或者右连接完全保留员工表的数据

select e.name,b.bonus
from Employee e left join Bonus b
on e.empId = b.empId 
where bonus < 1000 or bonus is null

相关文章:

  • PostgreSQL常用函数
  • 个人健康中枢的多元化AI硬件革新与精准健康路径探析
  • PyTorch、Flash-Attn、Transformers与Triton技术全景解析+环境包
  • 融智学数学符号体系的系统解读(之一)
  • 本地大模型编程实战(32)用websocket显示大模型的流式输出
  • 软考 系统架构设计师系列知识点之杂项集萃(51)
  • [学成在线]22-自动部署项目
  • 4.1 模块概述
  • ubuntu22.04安装显卡驱动与cuda+cuDNN
  • BERT+CRF模型在命名实体识别(NER)任务中的应用
  • ElasticSearch深入解析(八):索引设置、索引别名、索引模板
  • 前端面经-VUE3篇--vue3基础知识(一)插值表达式、ref、reactive
  • 【Hive入门】Hive性能调优之Join优化:深入解析MapJoin与Sort-Merge Join策略
  • PHP-session
  • word交叉引用图片、表格——只引用编号的处理方法
  • Typora语法转换与Vue双向数据绑定:延迟更新机制的异曲同工之妙
  • Mybatis学习笔记
  • MSP430G2553驱动0.96英寸OLED(硬件iic)
  • 【AI面试准备】Azure DevOps沙箱实验全流程详解
  • 基于bert预训练模型的垃圾短信分类系统
  • 美国多地爆发集会抗议特朗普政府多项政策
  • 见证历史与未来共舞:上海西岸“蝶变共生”对话讲坛圆满举行
  • 扬州市中医院“药膳面包”走红,内含党参、黄芪等中药材
  • 世界黄金协会:一季度全球黄金投资需求同比增170%
  • 王毅:时代不容倒退,公道自在人心
  • 中国人保聘任田耕为副总裁,此前为工行浙江省分行行长