【发布时间】:2016-03-18 06:45:22
【问题描述】:
我有一张这样的桌子:
姓名总计 Foo 7 佛巴 2 福巴尔2 2 美食吧 5 FBar 8 FBar2 8 FBar3 8 FbarL 9我真正想要的不是这样获得职位的方法:
姓名总职位 FoBarr 2 1st FoBarr2 2 1st Foobar 5 3rd // 注意没有第二个位置 Foo 7 4th FBar 8 5th FBar2 8 5th FBar3 8 5th FbarL 9 8th // 注意没有 6th 和 7th...我希望有一个 SQL 查询解决方案,尽管我也在开发一个 php 应用程序。
我已经搜索过了,我认为这个问题并不完全属于排名函数本身,因为如果有平局,位置不会像那样按顺序排列。
谢谢。
【问题讨论】:
-
为什么要跳过第 2、第 6 和第 7 个?可能有一种方法可以获取相对位置 - 但如果您要跳过行,则可能必须在代码中完成。
-
@A.Chiesa,这不是那个特定问题的重复。看到这里,例如,当两个总数相同时,该位置跳过第二个之后的位置并转到下一个
-
请阅读第二个答案...它是重复的。你搜索的是 RANK 函数,MySQL 不直接支持,但可以模拟。你最好搜索一下。
-
@ahoffner 我跳过第 2 项,因为作为第 2 项的 FoBarr2 现在位于第 1 位,所以下一个将是第 3 位(这是一个要求) - 这也使得最后一个位置成为可能与项目总数相吻合。在这里,我有8个项目,最后的位置是第8个......