【发布时间】:2019-10-07 05:20:37
【问题描述】:
假设您有一个多项目比赛,参赛者可以尝试任意次数的任何项目。 (奇怪,我知道。)
如何为每项赛事提取想要的球员的最佳时间, 并为其分配一个位置? (一二三...)
Data example: Desired output:
Name | Event | Score Name | Event | Score | Rank
-------------------- ----------------------------
Bob 1 50 Given input: "Bob"
Bob 1 100 Bob 1 100 1
Bob 2 75 Bob 2 75 3
Bob 3 80 Bob 3 80 2
Bob 3 65
Given input: "Jill"
Jill 2 75 Jill 2 90 1
Jill 2 90 Jill 3 60 3
Jill 3 60
Given input: "Chris"
Chris 1 70 Chris 1 70 2
Chris 2 50 Chris 2 85 2
Chris 2 85 Chris 3 100 1
Chris 3 100
这是我上一个问题的基础: Multi-event tournament standings
我觉得更好地理解了这个问题(谢谢!),但我无法弥合与这个版本问题的差距。
我有 SQL 5.x,所以我不能使用 Rank() 之类的东西。这也将处理成千上万的分数。
【问题讨论】:
-
在 MySQL 8.x 中应该很容易。不过,我不知道 5.x。你有哪一个?
-
为什么在期望输出中,玩家对“Bob”、“Jill”、“Chris”进行排序。排序重要吗?
-
@TheImpaler 我有 5.x,这就是我如此挣扎的原因。
-
@MaksymMoskvychev 我希望它只返回输入的人的分数。
-
为什么 Chris 在
1和2两个事件中的排名都是2?