更新了部分文档

master
jackfrued 2024-05-28 17:54:02 +08:00
parent c6ef269a37
commit 3bcf6bf0f7
2 changed files with 15 additions and 15 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 764 KiB

After

Width:  |  Height:  |  Size: 803 KiB

View File

@ -159,14 +159,14 @@ select * from (
) `temp` where `rank` between 4 and 6;
```
> **说明**上面使用的函数`row_number()`可以为每条记录生成一个行号,在实际工作中可以根据需要将其替换为`rank()`或`dense_rank()`函数,三者的区别可以参考官方文档或阅读[《通俗易懂的学会SQL窗口函数》](https://zhuanlan.zhihu.com/p/92654574)进行了解。在MySQL 8以前的版本我们可以通过下面的方式来完成类似的操作。
>
> ```SQL
> select `rank`, `ename`, `sal` from (
> select @a:=@a+1 as `rank`, `ename`, `sal`
> from `tb_emp`, (select @a:=0) as t1 order by `sal` desc
> ) as `temp` where `rank` between 4 and 6;
> ```
上面使用的函数`row_number()`可以为每条记录生成一个行号,在实际工作中可以根据需要将其替换为`rank()`或`dense_rank()`函数,三者的区别可以参考官方文档或阅读[《通俗易懂的学会SQL窗口函数》](https://zhuanlan.zhihu.com/p/92654574)进行了解。在MySQL 8以前的版本我们可以通过下面的方式来完成类似的操作。
```SQL
select `rank`, `ename`, `sal` from (
select @a:=@a+1 as `rank`, `ename`, `sal`
from `tb_emp`, (select @a:=0) as t1 order by `sal` desc
) as `temp` where `rank` between 4 and 6;
```
例子2查询每个部门月薪最高的两名的员工的姓名和部门名称。
@ -180,13 +180,13 @@ from (
) as `temp` natural join `tb_dept` where `rank`<=2;
```
> 说明在MySQL 8以前的版本我们可以通过下面的方式来完成类似的操作。
>
> ```SQL
> select `ename`, `sal`, `dname` from `tb_emp` as `t1`
说明在MySQL 8以前的版本我们可以通过下面的方式来完成类似的操作。
```SQL
select `ename`, `sal`, `dname` from `tb_emp` as `t1`
natural join `tb_dept`
where (
select count(*) from `tb_emp` as `t2`
where `t1`.`dno`=`t2`.`dno` and `t2`.`sal`>`t1`.`sal`
select count(*) from `tb_emp` as `t2`
where `t1`.`dno`=`t2`.`dno` and `t2`.`sal`>`t1`.`sal`
)<2 order by `dno` asc, `sal` desc;
> ```
```