题解 | #考试分数(四)#
考试分数(四)
https://www.nowcoder.com/practice/502fb6e2b1ad4e56aa2e0dd90c6edf3c
SELECT
T1.job
,CASE WHEN T1.RN % 2 != 0 THEN (FLOOR(T1.RN / 2) + 1)
ELSE FLOOR(T1.RN / 2)
END start
,CASE WHEN T1.RN % 2 != 0 THEN (FLOOR(T1.RN / 2) + 1)
ELSE (FLOOR(T1.RN / 2) + 1)
END end
FROM
(
SELECT
T.job
,MAX(T.RN) RN
FROM
(
SELECT
*
,ROW_NUMBER() OVER (PARTITION BY job ORDER BY score DESC) RN
FROM grade
) T
GROUP BY T.job
) T1
;
