1.
创建一个表,表如图所示
id | department | salary | name |
---|---|---|---|
1 | 1 | 200 | 张三 |
2 | 1 | 300 | 李四 |
3 | 1 | 100 | 王五 |
4 | 2 | 200 | 牛六 |
5 | 2 | 300 | 张耀 |
需求:
找出两个部门中工资最高的员工
需输出
department | salary | name |
---|---|---|
1 | 300 | 李四 |
2 | 300 | 张耀 |
步骤1:创建表
CREATE TABLE test0211(
id INT,
department INT,
salary INT,
NAME VARCHAR(20)
);
步骤2:插入数据
INSERT INTO test0211
VALUES (001,001,200,'张三')
,(002,001,300,'李四')
,(003,001,100,'王五')
,(004,002,200,'牛六')
,(005,002,300,'张耀')
步骤3:分析需求编写代码
1.需查出两个部门的最高薪资,所以使用子查询先通过
group by 按部门分组,再使用max函数求出最高薪资
2.使用where条件去筛选部门和薪资与表二相等的员工
输出
SELECT department, salary, NAME
FROM test0211
WHERE (department, salary)
IN
(SELECT department, MAX(salary)
FROM test0211
GROUP BY department)