欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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