【发布时间】:2015-06-07 21:08:59
【问题描述】:
我有一个比赛,代表可以在许多不同的商店中进行,商店根据进入商店的人来获得积分。
我需要做的是根据积分值选择一家商店的排名(其中 id = x),如果一家商店是并列的,那么排名应该是相同的(即首先联合两家商店)
然后我需要根据代表商店分数的总和来选择代表的排名。
商店
id name points rep_id
1 Regents Street 1501 3
2 Oxford Street 1500 2
3 Carnaby Street 1499 3
4 Edward Street 1499 1
5 Edward Street 1499 4
代表
id name
1 John Smith
2 John Doe
3 Joe Smit
3 Lou Jackson
商店排行榜:
1st - 1, Regents Street
2nd - 2, Oxford Street
3rd - 3,4,5
代表排行榜:
1st - 3, Joe Smit (3000)
2nd - 2, John Doe (1500)
3rd - 1,4 (1499)
我有一个查询来获取商店排名,但它不适用于领带。
SELECT id,
name,
points,
FIND_IN_SET(points,
(SELECT GROUP_CONCAT(points
ORDER BY points DESC)
FROM stores)) AS rank
FROM stores
WHERE id = 1
谢谢
【问题讨论】:
-
请使用示例数据和所需结果编辑您的问题。
-
我已经根据数据添加了所需的排名。
标签: mysql