ORACLE 先分组后排序,取出每一类的头几条数据

时间:2021-07-22 15:13:04

--先根据A进行分组,再在组内根据B进行排序。rn<3取出每一类的头三条数据


SELECT *
  FROM (SELECT T.B,
               T.A,
               ROW_NUMBER() OVER(PARTITION BY T.A ORDER BY T.B DESC) RN
          FROM DUAL T)
 WHERE RN <= 3;