Oracle分组,取每个分组的第一条数据
程序员文章站
2022-05-15 11:32:42
最近有个有个业务需求(springboot项目集合mybatis):需要查询分组后,取每组的第一条数据(oracle数据库),可以在业务代码中实现,但是过于繁琐,后来查阅oracle的函数,得出仅仅在sql中即可实现,非常简洁,简化代码,sql如下:SELECT *FROM( SELECTt_user.*,ROW_NUMBER () OVER (PARTITION BY deptno ORDER BY sal DESC ) rn FROMt_...
最近有个有个业务需求(springboot项目集合mybatis):需要查询分组后,取每组的第一条数据(oracle数据库),可以在业务代码中实现,但是过于繁琐,后来查阅oracle的函数,得出仅仅在sql中即可实现,非常简洁,简化代码,sql如下:
SELECT
*
FROM
(
SELECT
t_user.*,
ROW_NUMBER () OVER (PARTITION BY deptno ORDER BY sal DESC ) rn
FROM
t_user
)
WHERE
rn = 1;
over: 在什么条件之上。
partition by deptno: 按部门编号划分(分区)。
order by e.sal desc: 按工资从高到低排序
本文地址:https://blog.csdn.net/weixin_44912883/article/details/107297736