MySQL_项目7: 各部门工资最高的员工(难度:中等)

项目七: 各部门工资最高的员工(难度:中等)

创建Employee 表,包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id。

+----+-------+--------+--------------+

| Id | Name | Salary | DepartmentId |

+----+-------+--------+--------------+

| 1 | Joe | 70000 | 1 |

| 2 | Henry | 80000 | 2 |

| 3 | Sam | 60000 | 2 |

| 4 | Max | 90000 | 1 |

+----+-------+--------+--------------+

-- 创建employee表
CREATE TABLE employee (
id int(11) NOT NULL,
name varchar(50) NOT NULL,
salary decimal(10,2) NOT NULL DEFAULT ‘0.00‘,
departmentid int(11) NOT NULL,
PRIMARY KEY (`id`));

-- 插入数据
INSERT INTO `employee` VALUES (‘1‘, ‘Joe‘, ‘70000.00‘, ‘1‘);
INSERT INTO `employee` VALUES (‘2‘, ‘Herry‘, ‘80000.00‘, ‘2‘);
INSERT INTO `employee` VALUES (‘3‘, ‘Sam‘, ‘60000.00‘, ‘2‘);
INSERT INTO `employee` VALUES (‘4‘, ‘Max‘, ‘90000.00‘, ‘1‘);
INSERT INTO `employee` VALUES (‘5‘, ‘Janet‘, ‘69000.00‘, ‘1‘);
INSERT INTO `employee` VALUES (‘6‘, ‘Randy‘, ‘85000.00‘, ‘1‘);
INSERT INTO `employee` VALUES (‘7‘, ‘sherry‘, ‘90000.00‘, ‘1‘);
INSERT INTO `employee` VALUES (‘8‘, ‘haha‘, ‘80000.00‘, ‘2‘);
INSERT INTO `employee` VALUES (‘9‘, ‘Abbo‘, ‘80800.00‘, ‘3‘);

创建Department 表,包含公司所有部门的信息。

+----+----------+

| Id | Name |

+----+----------+

| 1 | IT |

| 2 | Sales |

+----+----------+

-- 创建department表
CREATE TABLE department (
id int(11) NOT NULL,
name varchar(100) NOT NULL,
PRIMARY KEY (`id`));

-- 插入数据
INSERT INTO `department` VALUES (‘1‘, ‘IT‘);
INSERT INTO `department` VALUES (‘2‘, ‘Sales‘);
INSERT INTO `department` VALUES (‘3‘, ‘customs‘);

编写一个 SQL 查询,找出每个部门工资最高的员工。例如,根据上述给定的表格,Max 在 IT 部门有最高工资,Henry 在 Sales 部门有最高工资。

+------------+----------+--------+

| Department | Employee | Salary |

+------------+----------+--------+

| IT | Max | 90000 |

| Sales | Henry | 80000 |

+------------+----------+--------+

注意点:需要考虑同部门最高工资有多个人的情况

SELECT e.*,t.name department,t.maxsal
FROM employee e
INNER JOIN
                    (SELECT e.departmentid,d.name,MAX(salary) maxsal
                    FROM employee e
                    INNER JOIN department d
                    on e.departmentid = d.id
                    GROUP BY e.departmentid,d.name) t
on e.departmentid = t.departmentid

WHERE e.salary=t.maxsal

原文地址:https://www.cnblogs.com/wodexk/p/10706822.html

时间: 2024-08-28 15:27:22

MySQL_项目7: 各部门工资最高的员工(难度:中等)的相关文章

SQL练习——查询部门工资最高的员工

题目来源于leetcode:184. 部门工资最高的员工 思路: 首先是分部门的,因此肯定会用到group by ;其次各部门拥有最高工资的员工可能不仅仅只有一个人. 初步解法: 根据需求,可以先查询Employee表中的各部门的最高工资标准,作为一个标准线,代码如下: select Max(Salary) Salary,DepartmentId from Employee group by Employee.DepartmentId -- 各部门最高工资的标准  有了这个工资水平线,就可以用它

184. 部门工资最高的员工

  184. 部门工资最高的员工 需要注意的几个点,inner join可以缩减成join,取的是两个表的交集 in关键词,找的是当前所要找的数值是否在指定的范围之中 # Write your MySQL query statement below select d.Name as Department, e.Name as Employee, e.Salary from Employee e inner join Department d on e.DepartmentId = d.Id wh

力扣——部门工资前三高的员工(数据库的题

Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id . +----+-------+--------+--------------+ | Id | Name | Salary | DepartmentId | +----+-------+--------+--------------+ | 1 | Joe | 70000 | 1 | | 2 | Henry | 80000 | 2 | | 3 | Sam | 60000 | 2 | |

使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享

使用Jquery+EasyUI 进行框架项目开发案例解说之中的一个 员工管理源代码分享 在開始解说之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发人员更轻松的打造出功能丰富而且美观的UI界面.开发人员不须要编写复杂的javascript,也不须要对css样式有深入的了解,开发人员须要了解的仅仅有一些简单的html标签.jQuery EasyUI为我们提供了大多数UI控件的使用

使用Jquery+EasyUI项目开发情况的框架是中评---员工管理源代码共享

使用Jquery+EasyUI 进行框架项目开发案例解说之中的一个 员工管理源代码分享 在開始解说之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发人员更轻松的打造出功能丰富而且美观的UI界面.开发人员不须要编写复杂的javascript,也不须要对css样式有深入的了解.开发人员须要了解的仅仅有一些简单的html标签. jQuery EasyUI为我们提供了大多数UI控件的使

为什么企业宁愿开高工资给新员工,都不愿意给老员工加工资?

有朋友问到: 俺的建议: 先从这位被低薪压制的老员工角度说说: 决定你的薪资水平的根本原因是你的实力,而影响因素是你的性格.为什么说是你的性格呢?比方说你比较好欺负,不好意思和老板提要求,老板就会继续低薪用你,最多每年加你一点点.你作为老员工和老板谈工资,你的筹码比较弱,因为你需要保住这份工. 老板招聘新员工就不同了,老板需要这个岗位才去招聘的,有必要的话,他会出他能接受范围内的最高工资的. 所以从这位老员工的角度看来,自己就被欺负了,感觉自己实力比新员工还好,为啥我的待遇低? 当然这些都是自我

数据库笔试——查出各部门超出部门平均薪资的员工的姓名,薪资,所在部门名称及部门平均薪水

有一段时间没做数据库的题了,前面面试偶然做到这么一题目,觉得不错,凭记忆将题目记下来,然后在数据库中实现了一遍. 题目大概是这样: 一张员工表 employee,包含字段 id,name,salary,dep_no; 一张部门信息表 department,包含字段 id,dep_no,name,其中 employee 的 dep_no 关联 department 的 dep_no;写 sql 查出各部门超出部门平均薪资的员工的姓名,薪资,所在部门名称及部门平均薪水. 下面是我创建的两张表: DR

部门中薪资超过部门平均薪资的员工姓名及薪资

部门中薪资超过部门平均薪资的员工姓名及薪资 # 题表 # 建表 create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male', #大部分是男的 age int(3) unsigned not null default 28, hire_date date not null, post varc

OA项目11:部门列表树状显示功能及其他代码优化

首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频我的文字版实践笔记,本人用此来加强巩固自己开发知识,如有网友转载,请注明.谢谢. 一 使用递归使部门列表树状显示: 1.写一个工具类,实现通过顶级部门查询所有,具体如下: 1 package cn.clear.oa.util; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.List; 6 7 import cn.clea