gpt4 book ai didi

mysql 测验排行榜按分数、花费时间过滤

转载 作者:行者123 更新时间:2023-11-29 12:12:06 24 4
gpt4 key购买 nike

我有一个测验报告表,其中显示用户参加的每个测验的报告。我需要由此创建一个排行榜,其中显示最高用户的最佳得分,按分数过滤,然后按所用时间过滤。

这里是 sql fiddle http://sqlfiddle.com/#!2/65fbf0/1 的链接

我真的很挣扎,因为我需要为一个用户按两列过滤结果,我的理想结果是

Results for Quiz id 1
---------------------------------------------------------------
| user_id | points | time_spend | start_dt | quiz_id |
| 1 | 3 | 0.5 | May,15 2015| 1 |
| 2 | 3 | 0.8 | May,15 2015| 1 |
| 3 | 2 | 0.5 | May,15 2015| 1 |

然后对所有测验进行单独查询,显示上周的结果

Results from all Quizzs
---------------------------------------------------------------
| user_id | points | time_spend | start_dt | quiz_id |
| 1 | 3 | 0.5 | May,15 2015| 1 |
| 2 | 3 | 0.8 | May,13 2015| 3 |
| 3 | 2 | 0.5 | May,12 2015| 2 |

最佳答案

您可以像这样对多列进行排序:

select *
from QuizReport
where quiz_id = 1
order by points desc, time_spend asc;

select *
from (
select *
from QuizReport
where start_dt >= subdate(curdate(), 7)
order by points desc, time_spend asc) a
group by user_id;

group_by user_id 保留每个 user_id 的第一行。由于内部查询按分数对行进行排序,因此外部查询将为每个用户显示最佳行。

关于mysql 测验排行榜按分数、花费时间过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30470353/

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