select 
    emp_no,
    birth_date,
    first_name,
    last_name,
    gender,
    hire_date 
    from (
        select 
            emp_no,
            birth_date,
            first_name,
            last_name,
            gender,
            hire_date,
            dense_rank()over(order by hire_date desc) as rk 
        from 
            employees
        ) as e
where e.rk = 3
order by emp_no asc

1、窗口函数在where后运行,因此只能用子连接,如图1(图源于B站up主 戴戴戴师兄

2、dense_rank的排序是1123,rank是1134(那可能没有NO.3),row_number是1234(没有并列)。因此要dense_rank

3、dense_rank()over(partition by...order by...desc/asc)。这里partition by 不是必须的

4、本题错误如图2