SQL查询语句的问题统计

有张表AA 部门 A1 员工编号A2 员工姓名 A3 入职日期A4 如何查询各个部门第二个入职的员工信息
显示如下
部门名称、员工编号、员工姓名、入职日期

问sql题请提供一下数据库类型及版本。
根据问题描述来看,是要按部门分组,每个组按入职日期倒序排序,取每个组的第二行,那么这自然就想到了要使用开窗函数row_number,但并不是所有数据库都支持开窗函数的

select * from (
select aa.*,row_number() over(partition by A1 order by A4 desc) rn  from aa) as b
where rn=2

简单的实现下:

SELECT A1, A2, A3, A4
FROM AA
ORDER BY A4 ASC
LIMIT 1, 1;

使用 limit 语句即可,建议刷刷 leetcode 上的 sql 练习就行了,有原题,上面的答案如果不对,把 ASC 换成 DESC 。

还可以考虑的更复杂,比如为 NULL 的时候。

望采纳。