美文网首页
SQL简单面试题:查询每个部门工资最高的前10位员工

SQL简单面试题:查询每个部门工资最高的前10位员工

作者: cef802fb1136 | 来源:发表于2020-01-14 14:55 被阅读0次

前段时间同事突然甩了一个SQL面试题给我,题目是需要查询每个部门工资最高的前10位员工。想着查每个部门的最高还好,用max语句就可以搞定,这是要取前十。。。。

快速构建了一下思路,查了一下有没有类似的语法可以解决。

思路:
  • 查询每个部门工资最高的员工
  • 这样的员工取每个部门的前10个
  • 按照部门、工资排序
准备数据:
CREATE DATABASE company;

CREATE TABLE `employee`(
`empno` INT(32) NOT NULL AUTO_INCREMENT,
`department` VARCHAR(64),
`salary` DOUBLE(10,2),
PRIMARY KEY(`empno`);
INSERT INTO EMPLOYEE(`department`,`salary`) VALUES
('B',16000.00),('B',19000.00),('A',10000.00),('A',11000.00),('A',12000.00),('B',13000.00),('B',14000.00),('D',24000.00),('D',25000.00),('B',18000.00),
('C',7000.00),('A',13000.00),('A',14000.00),('A',16000.00),('C',5000.00),('A',16000.00),('A',17000.00),('A',18000.00),('A',19000.00),('B',17000.00),
('B',10000.00),('B',11000.00),('B',12000.00),('B',15000.00),('D',26000.00),('D',26000.00),('D',27000.00),('B',15500.00),('B',16000.00),
('D',20000.00),('D',21000.00),('D',25500.00),('C',2000.00),('C',3000.00),('C',4000.00),('D',28000.00),('D',29000.00),('D',30000.00),('C',6000.00),
('C',1000.00),('C',1100.00),('D',22000.00),('D',23000.00),('C',5500.00),('C',6000.00),('C',8000.00),('C',9000.00),('A',15000.00),('A',15500.00);
具体的SQL查询语句:
select
    a.department as '部门',
    a.id as '员工工号',
    a.salary as '薪资'
from employee a where (
                        select count(1) from employee b 
                    where b.salary > a.salary and a.department = b.department) < 10
order by a.department,a.id

相关文章

  • SQL简单面试题:查询每个部门工资最高的前10位员工

    前段时间同事突然甩了一个SQL面试题给我,题目是需要查询每个部门工资最高的前10位员工。想着查每个部门的最高还好,...

  • 数据库第五天

    查询每个部门每个岗位的工资总和 查询每个部门的部门编号,部门名称,部门人数,最高工资,最低工资,工资总和,平均工资...

  • 第七章练习1

    • 1.查询部门20的员工,每个月的工资总和及平均工资。• 2.查询工作在CHICAGO的员工人数,最高工资及最低...

  • 第七章练习1

    • 1.查询部门20的员工,每个月的工资总和及平均工资。• 2.查询工作在CHICAGO的员工人数,最高工资及最低...

  • sql查询:部门工资前三高的员工和部门工资最高的员工

    建表语句: 表结构如下: Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 de...

  • **部门工资前三的员工

    编写一个 SQL 查询,找出每个部门工资前三高的员工 思路 ①通过表1的departmentId和表2的Id相连②...

  • postgresql group by first 的三种写法

    在sql 查询过程中经常有一种查询,某一类别的第一名 比如: 查询 employee表每一个部门工资最高的员工信息...

  • 黑猴子的家:mysql 测试练习题

    1、显示员工表的每个部门的最大工资,工资平均值 2、查询部门的员工个数>5的部门编号和员工个数,并按员工个数降序 ...

  • mysql子查询案例

    查询和Zlotkey相同部门的员工姓名和工资 查询工资比平均工资高的员工的员工号、姓名和工资 查询各部门中工资比本...

  • MySQL查询练习

    创建表:员工 employees,工资表 salary,部门 departments 插入数据 SQL数据库查询练...

网友评论

      本文标题:SQL简单面试题:查询每个部门工资最高的前10位员工

      本文链接:https://www.haomeiwen.com/subject/kshaactx.html