为了账号安全,请及时绑定邮箱和手机立即绑定

每行包含查询的表

每行包含查询的表

侃侃无极 2023-10-14 16:51:04
我正在寻找一些教程,向我展示如何使用 AJAX 制作好的表格。例如,我有获取用户的表和获取用户记录的表。用户表UserID | Name=======|===========000001 | Kristian000002 | David000003 | Tomas000004 | Philip000005 | John运行表UserID | RouteName | RunTime============================000001 | Route#001 | 45000001 | Route#002 | 30000001 | Route#003 | 20000002 | Route#001 | 10000002 | Route#002 | 5000002 | Route#003 | 25000003 | Route#001 | 25000003 | Route#002 | 50000004 | Route#002 | 100000004 | Route#003 | 200000003 | Route#001 | 300我想创建一个表,您可以在其中查看特定用户 ID 的运行时每个 RouteName 的位置。用户 ID 000001 的最终表RouteName | RunTime | Position==============================Route#001 |    45   |   3/4Route#002 |    30   |   2/4Route#003 |    20   |   1/3要在 PHP 中创建这样的表,需要一个查询来 SELECT 每个用户的每次运行,并且每行 2 个查询来计算位置和路由时间计数。而且我没有几条路线,我有 500 多条路线,如果我在一次运行它需要匹配时间,所以我正在寻找一些使用 AJAX 和行分页的教程或帮助创建它。谢谢。
查看完整描述

1 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

您可以使用窗口函数:


select *

from (

    select t.*, 

        rank() over(partition by routename order by runtime) rn,

        count(*) over(partition by routename) cnt

    from mytable t

) t

where userid = 1

这将选择给定的表的所有行userid,以及两个附加列:

  • rn是用户在每条路线上的排名;最快的用户获得排名1,运行时间相同的用户获得相同的排名

  • cnt是每条路线上出现的用户总数



查看完整回答
反对 回复 2023-10-14
  • 1 回答
  • 0 关注
  • 65 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信