AoboSir 博客

与15年前的我比,我现在是大人;与15年后的我比,我现在还是个婴儿

SQL 数据库 学习 030 查询-13 --- 查询语句的顺序


  • 我的电脑系统:Windows 10 64位
  • SQL Server 软件版本: SQL Server 2014 Express

SQL Server 查询语句的顺序

1
2
3
4
5
6
7
8
9
10
select top ...
  from A
  join B
  on ...
  join C
  on ...
  where ...
  group by ...
  having ...
  order by ...

例子

本例子里面使用了 scott 库,如何你现在还没有添加这个库到你的服务器里面,请在查看本篇博客前,访问这篇博文来在你的服务器里面附加scott库。


求出平均薪水最好的部门的标号和部门的平均工资

1
2
3
4
5
6
--求出平均薪水最好的部门的标号和部门的平均工资
--第1种写法:
select top 1 deptno, avg(sal) "avg_sal"
  from emp "E"
  group by deptno
  order by avg(sal) desc

Alt text

等价于:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
--求出平均薪水最好的部门的标号和部门的平均工资
--第2种写法:
select "E".*
  from (
      select deptno, avg(sal) "avg_sal"
          from emp
          group by deptno
  ) "E"
  where "E"."avg_sal" = (
      select max("avg_sal")
          from (
              select deptno, avg(sal) "avg_sal"
                  from emp
                  group by deptno
          ) "T"
  )

Alt text


Comments