SQL136每类试卷得分前3名 发表于 2022-11-25 分类于 mysql 这是文章开头,显示在主页面,详情请点击此处。 tag:窗口函数 123456789101112131415# 1、窗口函数的执行顺序是在group by之后的,所以他是对最后的结果进行再计算。# 2、在有聚合的情况下,其中max(score)返回的是确定的值,且类似形成新的表,按聚合方式进行计算。如果 order by score 不聚合,因为mysql的计算逻辑,在groupby下是不确定会返回分组内的哪个值。平常的窗口函数并不与groupby同时出现,但是一旦出现,orderby中就需要跟聚合内容。select * from (select tag as tid, uid, row_number() over(partition by tag order by max(score) desc,min(score) desc,uid desc ) as ranking from examination_info ex join exam_record er on ex.exam_id=er.exam_id group by tag,uid) table1where ranking<=3 ;