【发布时间】:2019-05-20 06:57:31
【问题描述】:
我正在尝试获取多赛事锦标赛的参赛者排名。
我可以很容易地对单个事件进行排名。有没有办法一次性找到 ALL?
Given input: "Bob"
Data example: Desired output:
Name | Event | Score Name | Event | Score | Rank
-------------------- ----------------------------
Bob 1 100 Bob 1 100 1
Bob 2 75 Bob 2 75 3
Bob 3 80 Bob 3 80 2
Jill 2 90
Jill 3 60
Chris 1 70
Chris 2 50
Chris 3 100
Amy 1 85
Amy 2 95
Amy 3 65
问题:我无法访问 Rank() 与我的 SQL 版本一起使用,在这种情况下无法更新。
很明显,我可以在一个循环中分别对每个事件进行评分, 但我想尝试一下子完成所有操作。
【问题讨论】:
-
排名只是一个序列号不是吗?
-
它是参与者在活动中的位置。比如第一、第二、第三等等。
-
@Strawberry:事件 3 的
Score的值为 {80,60,100,65},使 Bob 第二。 -
MySQL 8 之前版本的解决方案...db-fiddle.com/f/xcxcrdsBShWxr4Z8WTzJMS/1
-
是否可以让它跟踪平局?事实上,如果两个人是第一名,则下面的人被读作排名第二。