Mysql 根据每个任务的最佳提交动态计算用户点数

Mysql 根据每个任务的最佳提交动态计算用户点数,mysql,Mysql,我正在为竞赛节目制作一个竞赛管理系统 将有大约100个任务,在最坏的情况下,每个用户将为每个任务发布大约10个提交 每次提交都会给你一些分数,但只有每项任务得分最高的才算 现在我必须实现一个排名系统,但我不知道如何计算他们的分数,并根据每个任务的最佳提交量的总和动态排序 以下是我的表格: 任务:id名称最大点数 用户:id用户名密码 提交:id任务用户点 我唯一的想法是在users表中添加一个新的total_points字段,如果他们想按特定任务而不是全局排序,那么就创建另一个表来包含每个任务的

我正在为竞赛节目制作一个竞赛管理系统

将有大约100个任务,在最坏的情况下,每个用户将为每个任务发布大约10个提交

每次提交都会给你一些分数,但只有每项任务得分最高的才算

现在我必须实现一个排名系统,但我不知道如何计算他们的分数,并根据每个任务的最佳提交量的总和动态排序

以下是我的表格:

任务:id名称最大点数

用户:id用户名密码

提交:id任务用户点

我唯一的想法是在users表中添加一个新的total_points字段,如果他们想按特定任务而不是全局排序,那么就创建另一个表来包含每个任务的最佳提交


任何建议都很好。

从“保存groupwise max的行”开始,堆栈溢出的所有内容都是一个问题,因此不需要Q:前缀。@tadman Yeah,可以。我从reddit那里养成了这个习惯;3@Strawberry谢谢,看来这样就行了。明天我会在这个问题得到解决的时候做出回应:好吧,我得到了一个有效的查询!虽然我不知道复杂性是什么,但这是我能做的最好的了。选择users.username,SUMpoints作为用户内部连接中的点选择用户,MAXpoints作为提交中的点按问题分组,user max_pts ON users.id=按用户分组。id按点排序;谢谢@草莓