SQL-每日一题【184. 部门工资最高的员工】

题目

表: Employee

表: Department

 

编写SQL查询以查找每个部门中薪资最高的员工。
按 任意顺序 返回结果表。
查询结果格式如下例所示。


示例 1:

  

 

解题思路

前置知识

1.rank() over的用法

作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续。

2.dense_rank() over

作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续。 说明:和rank() over 的作用相同,区别在于dense_rank() over 排名是密集连续的。

3.row_number() over

作用:查出指定条件后的进行排名,条件相同排名也不相同,排名间断不连续。 说明:这个函数不需要考虑是否并列,即使根据条件查询出来的数值相同也会进行连续排序。

注意:rank本身是个函数所以当我们取别名时要加''引号

1.我们使用窗口函数rank(),它可以根据指定的分区(partition by)和排序(order by)条件对结果集进行排名。这里的分区条件是Employee.departmentId,排序条件是salary DESC(降序排列)。它会为每个员工计算一个排名(RANKING),最高的员工排名为1。

2.还使用=用了子查询(subquery),将Employee和Department两个表连接(LEFT JOIN),并将结果命名为t。最终查询从t中选择Department、Employee和Salary三个列,并添加了一个WHERE子句,只检索排名为1的员工。

tip:

partition by departmentId:按照部门分组
order by salary:按照分组进行排名
rank() over:对指定条件排名,条件相同排名相同,排名间断不连续即1,1,3,4,5,5,7

代码实现


# Write your MySQL query statement below
SELECTDepartment,Employee,Salary
FROM(SELECTDepartment.name as Department,Employee.name as Employee,salary as Salary,rank() over(partition by Employee.departmentId ORDER BY salary DESC) as RANKINGFROMEmployeeLEFT JOINDepartmentONdepartmentId = Department.id) t
WHERE RANKING = 1

测试结果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/2686.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何克服自动化测试中的壁垒和问题?

随着自动化测试技术的快速发展和普及,自动化测试已经成为各个行业广泛应用的重要测试手段。然而,自动化测试中仍然存在壁垒和问题,这些问题可能对测试效果产生影响,甚至会影响整个项目的进程。在本文中,我们将探讨如何…

QT5.12安卓环境的搭建(转载保存留档查看)

1. QT环境搭建 Qt 5.12.6安装的时候 添加 “Android ARM64-v8a”,也可以添加 “Android ARMv7” 。 (其它为搭建qgc时需要添加的) 2. Android 环境搭建 QT官方的指导: Qt 5.12 Getting Started with Qt for Android Qt 5.15 …

【CGAL】Clion+vcpkg+MacOS M2

安装brew 链接如下: MacBook使用笔记:安装Homebrew(M1) - 知乎 打开mac终端,输入: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 这个是国内镜…

Haproxy开源负载均衡部署

第一步环境准备: systemctl stop firewalld setenforce 0 systemctl disable firewalld.service #设置开机不启动防火墙sed -i s/SELINUX.*/SELINUXdisabled/ /etc/sysconfig/selinux #设置开机不启动防火墙iptables -F centos7服务器 haproxy 192.168…

Pytest+selenium+allure+Jenkins自动化测试框架搭建及使用

一、 环境搭建 1. Python下载及安装 Python可应用于多平台包括windows, Linux 和 Mac OS X, 本文主要介绍windows环境下。你可以通过终端窗口输入 "python" 命令来查看本地是否已经安装Python以及Python的安装版本。 如未安装python, 推荐下载python 3.8.3以…

【冒泡排序】

前言 在计算机科学中,排序算法是一种常见且重要的算法。排序算法的目标是将一组无序的数据按照一定的规则进行重新排列,以便更方便地进行搜索、查找或其他操作。 冒泡排序(Bubble Sort)是最简单的排序算法之一,它的原…

思维导图对我生活以及工作的帮助(用户投稿)

作为一名白领,我每天都面临着各种各样的工作和生活压力。 为了更好地应对这些挑战,我开始尝试使用思维导图来帮助自己更好地组织和管理各种信息和任务。其中一款非常优秀的软件就是ProcessOn思维导图,它为我的工作和生活带来了很多便利和帮助…

树与图的深度优先遍历

树的重心 本题的本质是树的dfs, 每次dfs可以确定以u为重心的最大连通块的节点数,并且更新一下ans。 也就是说,dfs并不直接返回答案,而是在每次更新中迭代一次答案。 这样的套路会经常用到,在 树的dfs 题目中 #includ…

5-2图像处理经典案例:正弦噪声图像去噪

学习目标: 图像处理经典案例 去除噪声 1.简述 图像降噪的英文名称是Image Denoising, 图像处理中的专业术语。是指减少数字图像中噪声的过程,有时候又称为图像去噪。图像的噪声来源相对复杂,搞清楚图像噪声的成因对我们进行…

Java——《面试题——分布式篇》

前文 java——《面试题——基础篇》 Java——《面试题——JVM篇》 Java——《面试题——多线程&并发篇》 Java——《面试题——Spring篇》 Java——《面试题——SpringBoot篇》 Java——《面试题——MySQL篇》​​​​​​ Java——《面试题——SpringCloud》 Java…

大数据Doris(五十三):MySQL Dump 导出

文章目录 MySQL dump 导出 一、Dump导出案例 二、注意事项 MySQL Dump 导出 mysqldump是一个常用的 MySQL 数据库备份工具,它可以将 MySQL 数据库中的数据导出为 SQL 格式的文件,从而实现对数据的备份、迁移和恢复等操作。Doris 在0.15 之后的版本已…

Echarts折线图折线呈现为渐变线条

想要如图所示的折线图,折线线条为渐变颜色,两边颜色接近区域面积的颜色,中间颜色亮度高一些,在series中使用lineStyle,将其color设置为渐变色: option {xAxis: {type: category,data: [Mon, Tue, Wed, Th…