gpt4 book ai didi

mysql - 生成级数序列,显示得分最高的 n 个候选者和得分第二高的 n+5 个候选者,依此类推

转载 作者:行者123 更新时间:2023-11-30 00:12:55 25 4
gpt4 key购买 nike

有一个包含 3 列的表。该表中的 ID 是唯一的,分数可以重复,并且该表中有数千个条目。

ID名称分数

问题陈述:-

我必须以这样的方式显示列表

列表 5:得分最高的候选人 列表 10:得分第二高的候选人 列表 15:得分第三高的候选人

依此类推..(每增加5)

最佳答案

select @mem_count:=@mem_count+5 as group_member_count, scores.score 
from (select distinct score from scores_table order by score desc) scores,
(select @mem_count:=0) sess

查询返回分数列表以及每个分数的成员计数。这将是下一个语句中使用的子查询。

select 
sc.*,
@group_n:=if(sc.score!=@group,0,@group_n+1) number_in_group,
@group:=sc.score
from
(SELECT @group_n:=0, @group:=-1) row,
scores_table sc
join (the_subquery) sub on sc.score=sub.score
having number_in_group<sub.group_member_count

这里我们定义了 2 个 session 变量 group(以保持当前分数)和 group_n 来为每行添加组中的数字。

因此,我们希望按分数对分组进行分类,并对每个分数的所有行进行编号。然后,将仅留下少于 group_member_count

的成员

关于mysql - 生成级数序列,显示得分最高的 n 个候选者和得分第二高的 n+5 个候选者,依此类推,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23902789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com