从一列中检索两个最高值以进行排序的差异比较

时间:2011-11-09 15:40:19

标签: mysql sql highest

修改添加信息:

我意识到有很多“得到两个最高”或“得到第二高”的SQL问题并回答了帖子,所以如果这个问题多余,我会提前道歉,但我想做的事情有点不同于其他情况,我需要一些从A到B的帮助。我最好是一个MySQL爱好者,所以我相信你们中的一些人的答案是显而易见的。

我有一堆棒球运动员的单赛季统计数据。我想把他们的赛季与他们的赛季的最高值进行比较,并将其作为第二高的值。我也希望能够通过从最高值中减去第二高来来比较两个季节。

当然,我可以轻松地使用MAX获得最高价值,但对于像我这样的新手来说,这是一个更大的难度。


到目前为止,感谢您的帮助。

我将简化相关的表结构,使其相关:

playerid, Year, Value

每个球员赛季按年份分开。

我想从我的查询中返回的是

Player id, 
Year [of Highest Value], 
Value [Highest], 
Year [of Second Highest Value], 
Value [Second-Highest]

我希望这很简单明了。谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

在不知道你的表结构的情况下,你基本上可以这样做:

SELECT score
FROM statstable
WHERE playerID=???
ORDER BY score DESC
LIMIT 2

将检索得分最高的两行,您可以从中提取得分并在客户中减去。

如果您在另一个查询中需要此最高next_highest值,那么它会变得有点复杂。