25个高级SQL查询-列出结果集的后5行

 本专栏中的许多示例将基于以下员工表(employee)。只有少数例子将以其他表格为基础;在这些情况下,表格将与示例一起进行说明。

一、WITH

WITH AS 短语,也叫做子查询部分,定义一个SQL片断后,该SQL片断可以被整个SQL语句所用到。有的时候,with as 是为了提高SQL语句的可读性,减少嵌套冗余。

二、SQL例句

这个查询类似于上一节课的前5个查询,但我们需要最后5行。我们只需要在排序类型上进行更改,即使用ASC而不是DESC。在CTE中,我们将根据工资的升序(最低工资优先)创建一个排名列:

WITH employee_ranking AS (
  SELECT
    employee_id,
    last_name,
    first_name,
    salary,
    RANK() OVER (ORDER BY salary ASC) as ranking
  FROM employee
)
SELECT
  employee_id,
  last_name,
  first_name,
  salary
FROM employee_ranking
WHERE ranking <= 5
ORDER BY ranking

在主查询中,我们使用WHERE ranking<=5来筛选工资最低的5行。之后,我们使用ORDER BY排名按排名值对报告的行进行排序。

三、查询结果

猜你喜欢

转载自blog.csdn.net/wyxtx/article/details/131849804