题解 | #考试分数(四)#
考试分数(四)
https://www.nowcoder.com/practice/502fb6e2b1ad4e56aa2e0dd90c6edf3c
SELECT job, if(max(pai)%2=1,round((max(pai)+1)/2,0),round(max(pai)/2,0)) start, if(max(pai)%2=1,round((max(pai)+1)/2,0),round(max(pai)/2+1,0)) end FROM ( SELECT job, ROW_NUMBER() OVER (partition by job order by score) pai FROM grade ) a GROUP BY job
这类处理排名的sql,通用的思路是先用排序开窗函数做出一个排名列,再进行需要的处理