2022-12-05:部门工资前三高的所有员工。编写一个SQL查询找出每个部门中收入前三高的员工 。 +------------+----------+--------+ | Department |
2022-12-05:部门工资前三高的所有员工。编写一个SQL查询找出每个部门中收入前三高的员工 。
±-----------±---------±-------+
| Department | Employee | Salary |
±-----------±---------±-------+
| IT | Max | 90000 |
| IT | Joe | 85000 |
| IT | Randy | 85000 |
| IT | Will | 70000 |
| Sales | Henry | 80000 |
| Sales | Sam | 60000 |
±-----------±---------±-------+
DROP TABLE IF EXISTS `department`;
CREATE TABLE `department` (
`id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `department` VALUES ('1', 'IT');
INSERT INTO `department` VALUES ('2', 'Sales');
DROP TABLE IF EXISTS `employee`;
CREATE TABLE `employee` (
`id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`salary` int(11) NOT NULL,
`department_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `employee` VALUES ('1', 'Joe', '85000', '1');
INSERT INTO `employee` VALUES ('2', 'Henry', '80000', '2');
INSERT INTO `employee` VALUES ('3', 'Sam', '60000', '2');
INSERT INTO `employee` VALUES ('4', 'Max', '90000', '1');
INSERT INTO `employee` VALUES ('5', 'Janet', '69000', '1');
INSERT INTO `employee` VALUES ('6', 'Randy', '85000', '1');
INSERT INTO `employee` VALUES ('7', 'Will', '70000', '1');
答案2022-12-05:
sql语句如下:
SELECT
d.Name AS 'department', e1.Name AS 'employee', e1.salary
FROM
employee e1
JOIN
department d ON e1.department_id = d.id
WHERE
3 > (SELECT
COUNT(DISTINCT e2.salary)
FROM
employee e2
WHERE
e2.salary > e1.salary
AND e1.department_id = e2.department_id
)
;
执行结果如下:

2022-12-05:部门工资前三高的所有员工。编写一个SQL查询找出每个部门中收入前三高的员工 。 +------------+----------+--------+ | Department |的更多相关文章
- 如何用分析函数找出EMP表中每个部门工资最高的员工
EMP表是Oracle测试账户SCOTT中的一张雇员表,首先,我们来看看emp表的数据 SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE ...
- 找出一堆数中最小的前K个数
描写叙述: 给定一个整数数组.让你从该数组中找出最小的K个数 思路: 最简洁粗暴的方法就是将该数组进行排序,然后取最前面的K个数就可以. 可是,本题要求的仅仅是求出最小的k个数就可以,用排序能够但显然 ...
- 找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}
int [][]a={{3,2,6},{6,8,2,10},{5},{12,3,23}}; //先对二维数组进行遍历:然后把二维数组合成一个数组 int[] k=new int[11]; int q= ...
- 15.找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}
package com.bao; public class Erweim { public static void main(String[] args) { int[][]a={{3,2,6},{6 ...
- sql:找出工资第二高的人名
CREATE TABLE EmpSalaryInfo ( Id ), Name ), Salary int ) ) ) ) ) 方法1 (子查询): name from test where sala ...
- 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。
// test20.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...
- Linux中找出占用内存最多的前N个进程
一.使用ps命令 ps -aux | sort -k4nr | head -N *命令详解: 1. head:-N可以指定显示的行数,默认显示10行. 2. ps:参数a指代all——所有的进程,u指 ...
- [SQL]LeetCode185. 部门工资前三高的员工 | Department Top Three Salaries
SQL 架构 Create table If Not Exists Employee (Id ), Salary int, DepartmentId int) Create table If Not ...
- 部门工资前三高的所有员工 - LeetCode
Employee 表包含所有员工信息,每个员工有其对应的工号 Id,姓名 Name,工资 Salary 和部门编号 DepartmentId . +----+-------+--------+---- ...
- sql查询:部门工资前三高的员工和部门工资最高的员工
创建表:Create table If Not Exists Employee (Id int, Name varchar(255), Salary int, DepartmentId int);Cr ...
随机推荐
- Tensorflow Debug Record
problem: InternalError (see above for traceback): Blas GEMM launch failed solve: sudo rm -rf ~/.nv/ ...
- mysql查询增加自增列
mysql> SELECT a.user, @i:=@i+1 as id FROM user a,(SELECT @i:=0) b; +------------------+------+| u ...
- node.js缓冲区类与node-red向串口发数据
遇到的问题是使用node-red的串口模块向串口发送16进制数据,控制LED灯. 初学者经常想当然的认为只要msg的payload里放上对应的数就行了.其实不是. Node-red是node.js环境 ...
- 【Mybatis-Plus】使用updateById()、update()将字段更新为null或者空
参考 https://blog.csdn.net/weixin_41544866/article/details/119738605
- ElementPlus 表单 resetFields 无效问题解决方法
最近在写一个项目,一个表单递交或者使用resetFields关闭后,再打开,原来的值还存在,后查了一下网上的方法,确定是el-form-item,必须要加prop,其值要与model相同,此问题得到完 ...
- Cmakelist如何添加自己的组件
在components文件夹下添加各组件的CMakeList,其中可以设置的变量如下: COMPONENT_SRCS:要编译进当前组件的源文件的路径,推荐使用此方法向构建系统中添加源文件.COMPON ...
- MySQL学习(八)BLOB和TEXT区别
:都市为存储很大数据而设计的字符串数据类型,分别采用二进制和字符方式存储.当blob和text值太大时,innodb会使用专门的"外部"存储区域来进行存储,此时每个值在行内需要1~ ...
- list列表和tuple、条件判断、循环、dict和set、调用函数、定义函数
1.list列表是有序的可变的列表,可以进通过append()方法末尾添加,通过pop删除末尾以及根据索引pop(i)来删除指定索引对应的元素 通过给指定的列表元素赋值更改元素值,通过列表的索引查看元 ...
- Python GDAL库在Anaconda环境中的配置
本文介绍在Anaconda环境下,安装Python中栅格.矢量等地理数据处理库GDAL的方法. 需要注意的是,本文介绍基于conda install命令直接联网安装GDAL库的方法:这一方法有 ...
- 部署:mysql搭建多主一从源复制环境
问题描述:搭建过一主多从的环境,由于数据库数据一致性要求高,有些情景会搭建一主多从的架构,搭建多主一从的模式,相对来说适合数据整合,将多个业务的库整合到一起,方便做查询,也可以当做一个监控其他主库数据 ...