查询每个部门工资最高的员工 sql

news2024/11/22 22:06:48

在线运行sql语句

CREATE TABLE dept (
    dno INT PRIMARY KEY AUTO_INCREMENT,
    dname VARCHAR(50) NOT NULL,
    dlocal VARCHAR(100)
);
CREATE TABLE employee (
    eno INT PRIMARY KEY AUTO_INCREMENT,
    ename VARCHAR(50) NOT NULL,
    egender CHAR(2),
    deptno INT NOT NULL,
    ejob VARCHAR(50) NOT NULL,
    esalary INT NOT NULL,
    hiredate DATE NOT NULL
);
ALTER TABLE employee AUTO_INCREMENT = 1001;
INSERT INTO dept (dname, dlocal) VALUES ('accounting', '上海');
INSERT INTO dept (dname, dlocal) VALUES ('research', '北京');
INSERT INTO dept (dname, dlocal) VALUES ('sales', '深圳');
INSERT INTO dept (dname, dlocal) VALUES ('operations', '杭州');
INSERT INTO employee (ename, egender, deptno, ejob, esalary, hiredate) VALUES
('smith', 'm', 20, 'clerk', 800, '2015-11-12'),
('allen', 'f', 30, 'salesman', 1600, '2003-05-12'),
('ward', 'm', 30, 'salesman', 1250, '2003-05-12'),
('jones', 'm', 20, 'manager', 2975, '1998-05-18'),
('martin', 'm', 30, 'salesman', 1250, '2001-06-12'),
('blake', 'f', 30, 'manager', 2850, '1997-02-15'),
('clark', 'm', 10, 'manager', 2450, '2002-09-12'),
('scott', 'm', 20, 'analyst', 3000, '2003-05-12'),
('king', 'f', 10, 'president', 5000, '1995-01-01'),
('turner', 'f', 30, 'salesman', 1500, '1997-10-12'),
('adams', 'm', 20, 'clerk', 1100, '1999-07-05'),
('james', 'f', 30, 'clerk', 950, '2008-06-15');

建表
employee结构
在这里插入图片描述

查询每个部门工资最高的员工

  1. 使用子查询
SELECT *
FROM employee e
WHERE e.esalary = (
  SELECT MAX(esalary)
  FROM employee
  WHERE deptno = e.deptno
);

在这里插入图片描述

  1. group by 写法
SELECT e.*
FROM employee e
INNER JOIN (
    SELECT deptno, MAX(esalary) AS max_salary
    FROM employee
    GROUP BY deptno
) max_salaries ON e.deptno = max_salaries.deptno AND e.esalary = max_salaries.max_salary;

在这里插入图片描述

  1. 窗口函数
SELECT eno, ename, egender, deptno, ejob, esalary, hiredate
FROM (
    SELECT *,
           ROW_NUMBER() OVER (PARTITION BY deptno ORDER BY esalary DESC) as rank
    FROM employee
) ranked
WHERE ranked.rank = 1;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

动态规划-两个数组的dp问题1

文章目录 1. 最长公共子序列(1143)2. 不相交的线(1035) 1. 最长公共子序列(1143) 题目描述: 状态表示: 建立一个二维的数组dp,dp[i][j]表示在第一个字符串的0到i区间以…

如何定时打开网站

首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 1、打开工具按下Ctrl3,切换到定时器模块,左侧右键,选择新建 2、标题叫百度,等下就让它打开百度&#xff0c…

在Windows系统cmd中输入python无法启动想要的版本 | cmd输入python反而启动Microsoft Store

在Windows系统cmd中输入python无法启动想要的版本 | cmd输入python反而启动Microsoft Store 情况一:无法启动目标python版本,明明已经添加了环境变量 根源:环境变量Path中有多个版本的python路径,想启动的python对应的环境变量排…

STM32F407实现傅里叶变换的三种方法【附源码】

一、浅谈傅里叶变换(Fourier Transformation,FT) 1、傅里叶级数 想要了解傅里叶变换,就要先了解一下什么是傅里叶级数。 如图所示,通过不断合成不同频率的正弦波(频率分量),合成后…

【电子通识】“二八定律”(巴莱多定律)在电子维修中也是这样吗?

二八定律的大意是说:少数20%的东西,占据了80%的另外一种东西。 比如世界大约20%的人占据了大约80%的财富;地球上20%的国家占据了80%的石油资源;太阳系中80%的质量集中在20%的天体上面;20%的疾病是80%病死者的直接死亡原…

什么是弹性云服务器(ECS)

弹性云服务器(Elastic Cloud Server,ECS)是由CPU、内存、操作系统、云硬盘组成的基础的计算组件。弹性云服务器创建成功后,您就可以像使用自己的本地PC或物理服务器一样,在云上使用弹性云服务器。 云服务器ECS&#x…

微软如何打造数字零售力航母系列科普07 - Azure PlayFab:你从未想过的世界上最大的开发工具(平台)

Azure PlayFab:你从未想过的世界上最大的开发工具 微软的James Gwertzman告诉GamesIndustry.biz Academy他帮助开发者成功的使命 制作游戏比以往任何时候都更容易上手。现在有无数的游戏引擎可供选择,其中大多数是免费的,PC空间的店面也同样重…

【CAN】知识点:错误帧、远程帧、过载帧

0、帧用途 数据帧:用于发送单元向接收单元传送数据的帧; 远程帧:用于接收单元向具有相同标识符的发送单元请求数据的帧; 错误帧:用于当检测出错误时向其它单元通知错误的帧; 过载帧:用于接收单元通知其尚未做好接收准备的帧 1、远程帧 1.1 帧结构 数据帧和远程帧有标…

C++深度解析教程笔记7

C深度解析教程笔记7 第13课 - 进阶面向对象(上)类和对象小结 第14课 - 进阶面向对象(下)类之间的基本关系继承组合 类的表示法实验-类的继承 第15课 - 类与封装的概念实验-定义访问级别cmd 实验小结 第16课 - 类的真正形态实验-st…

链表经典面试题上

目录 创作不易,如若对您有帮助,还望三连,谢谢!!! 题目一:203. 移除链表元素 - 力扣(LeetCode) 题目二:206. 反转链表 - 力扣(LeetCode&#xff…

攻防世界XCTF-WEB入门12题解题报告

WEB入门题比较适合信息安全专业大一学生,难度低上手快,套路基本都一样 需要掌握: 基本的PHP、Python、JS语法基本的代理BurpSuite使用基本的HTTP请求交互过程基本的安全知识(Owasp top10) 先人一步,掌握W…

EasyExcel 处理 Excel

序言 本文介绍在日常的开发中,如何使用 EasyExcel 高效处理 Excel。 一、EasyExcel 是什么 EasyExcel 是阿里巴巴开源的一个 Java Excel 操作类库,它基于 Apache POI 封装了简单易用的 API,使得我们能够方便地读取、写入 Excel 文件。Easy…

力扣数据库题库学习(4.28日)--1581.进店却未进行过交易的顾客

1581. 进店却未进行过交易的顾客 问题链接 思路分析 有一些顾客可能光顾了购物中心但没有进行交易。请你编写一个解决方案,来查找这些顾客的 ID ,以及他们只光顾不交易的次数。返回以 任何顺序 排序的结果表。 要求: 获取只浏览不消费的…

MySQL-笔记-08.数据库编程

目录 8.1 编程基础 8.1.1 基本语法 8.1.2 运算符与表达式 1. 标识符 2. 常量 (1) 字符串常量 (2)日期时间常量 (3)数值常量 (4)布尔值常量 (5)NULL…

深度学习:基于Keras,使用长短期记忆人工神经网络模型(LSTM)对股票市场进行预测分析

前言 系列专栏:机器学习:高级应用与实践【项目实战100】【2024】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目,每个项目都处理一组不同的问题,包括监督和无监督学习、分类、回归和聚类,而且涉及创建深度学…

百度网盘上的资料怎么打印出来?

百度网盘是一种云端存储服务,许多人选择将工作和学习相关的资料存储在百度网盘中,以便在需要时方便使用。要将百度网盘上的资料打印出来,实际上有多种方法。例如,您可以将百度网盘中的资料下载到本地,然后前往打印店进…

结合创新!频域+时间序列,预测误差降低64.7%

频域时间序列不仅能提供更丰富的信息,还能提高模型性能和预测准确性。对于论文er来说,是个可发挥空间大、可挖掘创新点多的研究方向。 具体来说: 通过将复杂的时间序列数据转换成简单的频率成分,我们可以更容易地捕捉到数据的周期…

贪心算法 Greedy Algorithm

1) 贪心例子 称之为贪心算法或贪婪算法,核心思想是 将寻找最优解的问题分为若干个步骤 每一步骤都采用贪心原则,选取当前最优解 因为没有考虑所有可能,局部最优的堆叠不一定让最终解最优 v2已经不会更新v3因为v3更新过了 贪心算法是一种在…

MySQL 运维篇

回顾基本语句: 数据定义语言(DDL) 这类语言用于定义和修改数据库的结构,包括创建、删除和修改数据库、 表、视图和索引等对象。 主要的语句关键字包括 CREATE 、 DROP 、 ALTER 、 RENAME 、 TRUNCATE 等。 create database 数据库 ; cr…

在vue3项目中设置错误路径的统一跳转

在我们前端开发过程中,如果,访问到了错误的或者不存在的路径,那么会直接出现空白。在一个完整的项目中,应该给用户一些友好的提示,显示他访问到了错误的页面。 我们可以专门的创建一个错误界面的.vue文件,…