SQL76 考试分数(五)
文章目录
题目题解
题目
题目来源:SQL76 考试分数(五) 题目描述 写一个sql语句查询各个岗位分数的中位数位置上的所有grade信息,并且按id升序排序 一张表 所需结果
题解
思路: 结果中的前三个字段来自原表,多的一个是组内分数的排名。 所以根据条件进行行过滤即可,大致思路是通过排序窗口函数去筛选:
分组为奇数输出一行,分组为偶数输出两行; 使用窗口函数获取分组总数,以及排行信息; 使用WHERE 进行 行过滤
SELECT t.id,
t.job,
t.score,
t.rk t_rank
FROM (SELECT *,
ROW_NUMBER() OVER(PARTITION BY job ORDER BY score DESC) rk, # 注意下分数是按照从高到低排列
SQL76 考试分数(五)最先出现在Python成神之路。
共有 0 条评论