讲义和SQL脚本地址:https://github.com/dgfwork/MySQL_Notebook

1.取得每个部门最高薪水的人员名称

 1 select
 2         e.deptno,max(e.sal) as maxsal
 3 from
 4         emp  e
 5 group by
 6             e.deptno
 7             
 8             
 9 -- mysql> select
10 --     -> e.deptno,max(e.sal)
11 --     -> from
12 --     -> emp  e
13 --     -> group by
14 --     -> e.deptno;
15 -- +--------+------------+
16 -- | deptno | max(e.sal) |
17 -- +--------+------------+
18 -- |     10 |    5000.00 |
19 -- |     20 |    3000.00 |
20 -- |     30 |    2850.00 |
21 -- +--------+------------+
22 
23 -- # 将以上查询结果当做一个临时表t(deptno,maxsal)
24 select 
25         e.deptno,
26         e.ename,
27         t.maxsal,
28         e.sal
29 from 
30         (select
31                 e.deptno,max(e.sal) as maxsal
32         from
33                 emp  e
34 group by
35             e.deptno) t
36         
37 join 
38         emp e 
39 on 
40         e.deptno=t.deptno
41 where 
42         t.maxsal=e.sal
43 
44 -- mysql> select
45 --     -> e.deptno,
46 --     -> e.ename,
47 --     -> t.maxsal,
48 --     -> e.sal
49 --     -> from
50 --     -> (select
51 --     -> e.deptno,max(e.sal) as maxsal
52 --     -> from
53 --     -> emp  e
54 --     -> group by
55 --     -> e.deptno) t
56 --     -> join
57 --     -> emp e
58 --     -> on
59 --     -> e.deptno=t.deptno
60 --     -> where
61 --     -> t.maxsal=e.sal;
62 -- +--------+-------+---------+---------+
63 -- | deptno | ename | maxsal  | sal     |
64 -- +--------+-------+---------+---------+
65 -- |     30 | BLAKE | 2850.00 | 2850.00 |
66 -- |     20 | SCOTT | 3000.00 | 3000.00 |
67 -- |     10 | KING  | 5000.00 | 5000.00 |
68 -- |     20 | FORD  | 3000.00 | 3000.00 |
69 -- +--------+-------+---------+---------+
View Code

相关文章:

  • 2021-05-14
  • 2021-11-23
  • 2021-09-19
  • 2022-12-23
  • 2021-12-04
  • 2021-10-24
  • 2021-12-14
猜你喜欢
  • 2021-09-28
  • 2022-12-23
  • 2021-12-14
  • 2021-11-29
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案