(1)row_number() over (partition by col_1 order by col_2 desc)按照col_1分组,其中按col_2 降序排列,并生成一个新的字段rowNum; (2)选择rowNum < 3,即为前2名; (3)order by id, salary desc,按照id升序,salary降序排列。
实现代码
select id, name, salary
from (select *, row_number() over (partition by id orderby salary desc) as row_num from student) a
where a.row_num <3orderby a.id, a.salary desc; #按照id升序,salary降序排列
解题思路(1)row_number() over (partition by col_1 order by col_2 desc)按照col_1分组,其中按col_2 降序排列,并生成一个新的字段rowNum; (2)选择rowNum (3)order by id, salary desc,按照id升序,salary降序排列。实现代码#创建表create table St