当前位置: 首页 > 知识库问答 >
问题:

根据总分和时间获取用户排名位置

葛和志
2023-03-14

我想根据总分和平均时间获得用户排名位置。但是,我使用的查询给出了错误的位置号。

$myId = TotalScore::where('user_id', $user_id)->first();
$position = TotalScore::where('ts', '>=', $myId->ts)
    ->where('avg_times_taken', '>=', $myId->avg_times_taken)->count();

表结构

共有2个答案

司空瑾瑜
2023-03-14

这是MySQL查询的外观:

SELECT 
    (
      SELECT COUNT(*)
      FROM TableScore X
      WHERE X.ts > T.ts OR (X.ts = T.ts AND X.avg_times_taken < T.avg_times_taken)
    ) + 1 AS position   
FROM TableScore T      
WHERE T.user_id = '7';

这里是正在工作的DB-FIDLE示例

周浩博
2023-03-14

从上述评论中可以清楚地看出,总分和平均花费的时间是成反比的。即total_score和average_time_taken之间的比率,应该给我们一些值,我们现在将使用这些值来定位或排序我们的记录。因此,首先,我会在表格中引入另一列,并计算比率。假设我们把列称为ratio_average

要获取我们列的值,只需获取total\u score/average\u time\u take

现在,当从表中获取结果时,我们只需执行以下操作:

TotalScore::orderBy('ratio_average', 'desc')->get();

现在,上面将按照第一个位置的正确位置顺序给出结果

 类似资料:
  • 问题内容: 我有一个如下的mysql表: 我基本上想获得一个单独的用户等级,而不选择所有用户。我只想通过id选择一个用户,并获得用户排名,该排名取决于他们所获得的积分。 例如,以ID 3选择等级2返回tom。 干杯 ef 问题答案: 密集等级:

  • 接口说明 根据用户登录之后生成的唯一token获取用户权限 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/power/1.0.0/get 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string form 是 用户登录标识 响应字段说明 参数 类型 说明 data String 数据

  • 问题内容: 我需要输入USER表的USER_ID字段作为另一个表中的外键。因此,我认为我需要在用户登录时启动一个会话。我很难让它在任何地方回显。我能够启动一个会话,该会话允许我回显USERNAME,但无法将其复制为ID。 请帮忙吗?我的处理代码如下。我还粘贴了本节,我暂时尝试对其进行回显以进行测试。 处理脚本: 我希望USER_ID出现在哪里: 问题答案: 使用FETCH_ASSOC而不是FETC

  • 接口说明 根据用户ID获取用户的概要信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /usercenter/api/userinfo/v1.0.0/getUserGeneralByUid 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 userId string query 是 用户ID 响应字段说明 参数

  • 接口说明 根据用户ID获取用户的概要信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /usercenter/api/userinfo/

  • 下面是我所拥有的数据的一个例子。 我想做的是总结每小时文件的大小。

  • 我有一个辅助项目网站,人们可以在那里评论东西,现在我需要显示用户的评论和评论者的用户名。问题是,我无法获得登录用户的用户名。 评论示例: 1) 评论人-Shelo 测试评论 2) 评论人-ProGa 测试评论2 现在的问题是,如果我试图获取“当前登录”用户的用户名,当用户登录时,两条评论都会有相同的用户名 上面的代码示例是您当前登录用户的方式。因此,如果我使用这段代码,并尝试通过

  • 本文向大家介绍Java根据Request获取客户端IP,包括了Java根据Request获取客户端IP的使用技巧和注意事项,需要的朋友参考一下 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr() ,这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理软件,将http://1