oracle 获取科目前3名

SELECT * FROM (
      SELECT T.*,
      ROW_NUMBER() OVER (PARTITION BY T.SUBJECT, T.CHARCODE ORDER BY T.SCORE DESC) AS RN
      FROM T_SCORE T
)
WHERE RN <= 3