数据库开窗分区函数,分组取第一个
假如一个学生成绩表,每个成绩都是一行数据,取每个学生的最好成绩
SELECT
*
FROM
( SELECT ROW_NUMBER () OVER ( PARTITION BY t.name ORDER BY t.score DESC ) rn, t.* FROM students t ) t
WHERE
t.rn = 1
假如一个学生成绩表,每个成绩都是一行数据,取每个学生的最好成绩
SELECT
*
FROM
( SELECT ROW_NUMBER () OVER ( PARTITION BY t.name ORDER BY t.score DESC ) rn, t.* FROM students t ) t
WHERE
t.rn = 1