Oracle partition by
-- 函数 row_number、rank、dense_rank
-- row_number: 序号,不重复;例如:1,2,3,4,5
-- rank: 排序,重复;例如:1,2,2,2,5
-- dense_rank: 排序,不重复;例如:1,2,2,2,3
-- sum:求和,本行排名之前(包括本行排名)的总和
-- count:技术,包括本行排名一共有多少名
SELECT
t.*
FROM
( SELECT a.*, 函数 ( ) over ( partition BY 需要分组的字段 ORDER BY 排序的字段 DESC ) rn FROM 表 a ) t
WHERE
t.rn = 1
-- 按科目分组查询每科第一
SELECT
t.*
FROM
( SELECT s.*, row_number ( ) over ( partition BY s.CID ORDER BY s.SCORE DESC ) rn FROM SCORE s ) t
WHERE
t.rn = 1