SQL练习题之求每个部门工资最高的人

news2024/11/19 16:32:10

冬至,又称日南至、冬节、亚岁。

文章目录

  • 前言
  • 一、题目
  • 二、表数据
  • 三、解答方法
  • 四、延伸思考
  • 题外话


前言

分享自己做SQL练习时遇到的经典题目,供各位小伙伴参考。


一、题目

现有员工表employee,求每个部门工资最高的前五个员工的 id, name, dept, salary 四项信息。

二、表数据

建表语句如下,建表并插入测试数据。

create table employee
(
    id     serial primary key,
    name   text,
    dept   text,
    salary decimal(10,2)
);

insert into employee values
(1,'张三','财务部',10000),
(2,'李四','财务部',8000),
(3,'王五','市场部',12000),
(4,'陈六','市场部',15000),
(5,'罗七','市场部',7000),
(6,'周八','人事部',7000),
(7,'gogo','财务部',9000),
(8,'vovo','财务部',7000),
(9,'coco','市场部',12000),
(10,'jojo','市场部',13000),
(11,'toto','市场部',10000),
(12,'dodo','市场部',8000),
(13,'koko','财务部',6000);

在这里插入图片描述

三、解答方法

利用开窗函数,根据部门分组,再按工资降序排列,取前五数据。

select
    id, 
    name, 
    dept, 
    salary
from 
(
    select 
        id, 
        name, 
        dept, 
        salary, 
        rank() over (partition by dept order by salary desc) as r
    from employee
) t
where r <= 5;

结果如下截图
在这里插入图片描述

四、延伸思考

总结本题思路并结合本人之前的博客《笔试题之编写SQL按要求查询用户阅读行为数据》第三题和《笔试题之多维度求极值》,发现此类题目有共通之处,可以使用同一类思路解答,具体逻辑思路如下。

  1. 利用开窗函数,先按某个维度分组;
  2. 再按度量排序;
  3. 最后根据需要取某些排序位置的数据。

适用于求多维度下某个度量的极值或部分数据。通用代码思路如下。

-- 通用代码思路
select
    id, 
    aa, 
    bb, 
    cc
from 
(
    select 
        id, 
        aa, 
        bb, 
        cc, 
        rank() over (partition by bb order by cc desc) as r
    from XX
) t
where r <= y;

-- 《笔试题之多维度求极值》使用该思路的解法
select
    t1.name,
    t1.subject,
    t1.subject_score
from
(
    select 
        name,
        subject,
        subject_score,
        row_number() over(partition by subject order by subject_score desc) r
    from score
) t1
where r = 1
;

题外话

冬至是二十四节气中一个重要的节气,也是中国民间的传统祭祖节日。冬至是四时八节之一,被视为冬季的大节日,在古代民间有“冬至大如年”的讲法。冬至习俗因地域不同而又存在着习俗内容或细节上的差异。在中国南方地区,有冬至祭祖、宴饮的习俗。在中国北方地区,每年冬至日有吃饺子的习俗。
在老家潮州,小时候冬至(老家叫冬节)会一家人自己搓丸子煮成甜汤吃,有点类似元宵,也会祭祖(老家叫过冬纸)。明天就是冬至了,提前祝各位小伙伴身体健康,工作顺利,远离新冠。

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

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

相关文章

硬件系统工程师宝典(1)-----硬件系统设计应该从哪里开始?

系统设计举足轻重的一步&#xff0c;需求分析 今天我们开始读张志伟老师的《硬件系统工程师宝典》&#xff0c;这是一本非常好的入门书&#xff0c;对需求分析&#xff0c;电源、信号完整性&#xff0c;电源完整性&#xff0c;可制造性&#xff0c;原理图&#xff0c;pcb的详细…

风控特征变量如何命名

风控变量的命名相信是各位小伙伴&#xff0c;不管是策略还是模型开发的同学都会经常遇到的问题。如果变量不多&#xff0c;假设变量也就只有十几二十个左右&#xff0c;相信大家也不需要怎么处理&#xff0c;或许下面这样的简单命名方式就好了&#xff1a; 如VAR1~VARN&#x…

一套Abaqus常用子程序的二次开发和复杂应用攻略

当物体所受载荷是比较复杂的函数时&#xff08;如与时间、位置等相关&#xff09;&#xff0c;通过界面输入的方式已经难以实现&#xff0c;通常便需要借助于DLOAD子程序来实现。下面将就ABAQUS软件的DLOAD子程序进行讲解和应用举例&#xff0c;希望通过此次讲解能够让更多的同…

01背包问题

01背包问题一、01背包问题1、问题描述2、问题性质分析3、动态规划思路&#xff08;1&#xff09;状态方程a.状态表示&#xff1a;b.状态转移&#xff1a;&#xff08;2&#xff09;循环的设计3、代码模板(1)朴素版(2)优化版一、01背包问题 1、问题描述 2、问题性质分析 这道题…

WEB接口测试之Jmeter接口测试自动化(初次接触)

软件测试自动化从不同的测试阶段分类&#xff0c;可从下层到上层依次分为单元测试-->接口测试-->界面自动化测试。 单元测试一般有开发人员自行完成&#xff0c;而界面自动化测试合适的测试条件又很难达到&#xff0c;测试人员在繁杂的手工界面测试之余&#xff0c; 更…

相信制造业品牌的实力:专访鸿雁全屋智能贵州总代理

作者 | 牧之 编辑 | 小沐 出品 | 智哪儿 zhinaer.cn长期以来&#xff0c;我们一直在讲智能家居市场的下沉&#xff0c;从一二线城市到三四线城市&#xff0c;从沿海到内陆。而事实上&#xff0c;印象中「欠发达」的内陆城市&#xff0c;对于智能家居的接受度可能比我们想象得要…

Qt中调用gRPC

RPC是Remote Procedure Call的简称&#xff0c;中文叫远程过程调用。 gRPC是由 google开发的一个高性能、通用的开源RPC框架&#xff0c;主要面向移动应用开发且基于HTTP/2协议标准而设计&#xff0c;同时支持大多数流行的编程语言。 一.编译gRPC 操作系统&#xff1a;window…

百亿级流量的系统架构该怎么设计,今天就来教会你!

V-xin&#xff1a;ruyuan0330 获得600页原创精品文章汇总PDF 目录 一、前情提示二、清晰划分系统边界三、引入消息中间件解耦四、利用消息中间件削峰填谷五、手动流量开关配合数据库运维六、支持多系统同时订阅数据七、系统解耦后的感受八、下集预告 一、前情提示 上一篇文章…

吊炸天的云原生,到底是个啥

云原生技术里有很多技术、概念和术语&#xff0c;不了解的人&#xff0c;往往弄不清楚而一头雾水&#xff0c;这些概念都是啥&#xff0c;之间是什么关系&#xff1f;本文要说的就是这些。本文更多是科普和扫盲&#xff0c;无意面面俱到&#xff0c;也无意深入细节。 本文适合一…

Allegro如何合并同名网络铜皮操作指导

Allegro如何合并同名网络铜皮操作指导 Allegro可以将同名网络的铜皮合并起来,如下图,需要把下面两块铜皮合并成一块铜皮 具体操作如下 选择Shape选择merge shapes

剑指Offer-面试题1:整数除法——你真的会用Math.abs吗?

整数除法 题目要求 输入2个int型整数&#xff0c;它们进行除法计算并返回商&#xff0c;要求不得使用乘号*、除号/及求余符号%。当发生溢出时&#xff0c;返回最大的整数值。假设除数不为0。例如&#xff0c;输入15和2&#xff0c;输出15/2的结果&#xff0c;即7。 有问题的…

使用OpenCV的函数polylines()绘制多条相连的线段和多边形;使用函数fillPoly()绘制带填充效果的多边形

函数polylines()可用来根据点集绘制多条相连的线段&#xff0c;也可用来绘制多边形。 函数polylines()有两种原型&#xff0c;这里只向大家介绍比较常用的那种原型。 函数polylines()的C原型如下&#xff1a; void cv::polylines(InputOutputArray img,const Point *const *…

Power BI 11个必学官方示例数据案例(附下载链接)

在开始学习Power BI时&#xff0c;最大的问题就是不知道哪里找数据&#xff0c;或者有数据却对搭建看板毫无头绪&#xff0c; 不知道该从哪里下手。 本文收集整理了官网上最值得学习的11个案例&#xff0c;包括不同行业和分析方法&#xff0c;方便大家按需学习。点击标题即可转…

安徽省建设工程监理人员从业水平能力证书

安徽省建设监理协会会员单位从业人员是指已通过安徽省建设监理协会组织的从业水平能力认定考试&#xff0c;取得《安徽省建设工程监理人员从业水平能力证书》&#xff0c;并在工程建设中从事监理工作的监理工程师和监理员&#xff08;以下简称“监理工程师、监理员”&#xff0…

LLVM中矩阵Matrix的实现分析

1 背景说明 Clang提供了C/C语言对矩阵的扩展支持&#xff0c;以方便用户使用可变大小的二维数据类型来实现计算&#xff0c;目前该特性还是实验版&#xff0c;设计和实现都在变化中。LLVM目前设计为支持小型列矩阵&#xff08;column major&#xff09;&#xff0c;其对矩阵的…

Java字节码介绍

Java字节码 概述 学习 Java 的都知道&#xff0c;我们所编写的 .java 代码文件通过编译将会生成 .class 文件&#xff0c;最初的方式就是通过 JDK 的 javac 指令来编译&#xff0c;再通过 java 命令执行 main 方法所在的类&#xff0c;从而执行我们的 Java 程序。而在这中间所…

【矩阵论】6. 矩阵理论——算子范数

6.2 算子范数 6.2.1 定义 CnC^nCn 上任一向量范数 ∥X∥V\Vert X\Vert_V∥X∥V​ 都产生一个矩阵范数 ∥A∥max⁡x≠0{∥AX∥V∥X∥V}\Vert A\Vert\max_{x\neq 0}\limits \{\frac{\Vert AX\Vert_V}{\Vert X\Vert_V}\}∥A∥x0max​{∥X∥V​∥AX∥V​​} ,X∈CnX\in C^nX∈Cn…

Linux 管理联网 测试网络连通性 -- Ping 命令详解 tracepath命令详解

测试网络的连通性 # 我们测试网络的连通性&#xff0c;一般就是使用的 PIng 命令 Ping &#xff1a; 一般格式 &#xff1a; ping [ 选项 ] < 目标主机名 或 IP 地址 > 常用选项 &#xff1a; - c 数字 &#xff1a; 用于 设定本命令发出的 ICMP 消息包的…

限量,Alibaba首发“Java成长笔记”,差距不止一点点

前言 本文是为了帮大家快速回顾了Java中知识点&#xff0c;这套面试手册涵盖了诸多Java技术栈的面试题和答案&#xff0c;相信可以帮助大家在最短的时间内用作面试复习&#xff0c;能达到事半功倍效果。 本来想将文件上传到github上&#xff0c;但由于文件太大有的都无法显示…

CentOS7使用yum安装Golang(超详细)

使用yum安装Golang前言一、go语言介绍二、yum安装golang1.安装go版本为1.19.41.1执行yum install go&#xff08;报错&#xff09;1.2配置go的安装源1.3执行yum install golang1.4查看go的安装版本2.安装go版本为 1.11rc2&#xff08;这个参考&#xff0c;不用操作&#xff09;…