导读:ER() OVER(PARTITION BY T.A ORDER BY T.B DESC) RN</p><p> FROM DUAL T)</p><p> WHERE RN = 3;</p> </div>...
--先根据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;