我正在Access中为棒球相关统计创建数据库(架构)。我想为初学者创建一个查询,将每个团队在某个统计数据中的排名进行排名。例如,我希望看到一个队伍相对于其他队伍在胜利方面的排名。
对于初学者,我有一个带有列组的表格,以及W或
Standings
Teams W
我有一个查询可以创建一个等级......但它出现了奇怪的
SELECT Standings.Teams, Standings.W, ((SELECT Count(*) FROM Standings AS Temp
WHERE Temp.W >= Standings.W ) AS Wins_Rank
FROM Standings
ORDER BY Standings.W;
前几个结果看起来像这样
Teams W Win_Rank
Texas 29 2
St.Louis 29 2
NewYork 28 4
Cincinnati 28 4
Atlanta 27 7
Pittsburg 27 7
Boston 27 7
我觉得应该更像1,1,3,3,5,5,5应该不是吗?有帮助吗?
答案 0 :(得分:2)
我认为您可以将其更改为:
SELECT Standings.Teams, Standings.W,
(SELECT Count(*)+1
FROM Standings AS Temp
WHERE Temp.W > Standings.W
) AS Wins_Rank
FROM Standings
ORDER BY Standings.W;
注意不平等的变化。将数字计算得更大,然后加1。