1
我正在計算mysql中一些數據的spearmans排名相關性。爲此,我需要按降序排列我的數據。我得到了這個工作,但是當2行具有相同的變量時,等級應該是2個或更多等級的平均值。 此處作爲一例是與當前行列一些示例數據和預期的行列在mysql中獲取多個排名的平均數
| id|var|rank|
| 8 | 1 | 1 |
| 2 | 2 | 2 | # rank should be 2.5
| 6 | 2 | 3 | # rank should be 2.5
| 4 | 3 | 4 |
| 5 | 4 | 5 |
| 1 | 5 | 6 |
| 3 | 6 | 7 | # rank should be 8
| 7 | 6 | 8 | # rank should be 8
| 9 | 6 | 9 | # rank should be 8
我的查詢看起來是這樣的現在:
SET @rownum := 0;
SET @rownum2 := 0;
SELECT rank_x.id, rank_x.var1, rank_x.rk_x
FROM
(SELECT id, @rownum := @rownum + 1 AS rk_x, var1
FROM sampledata order by var1 asc) as rank_x;
非常感謝,它的偉大工程!你所犯的唯一錯誤(我猜)是第四行的「@rn」。我認爲它應該是「rn」。 無論如何,完美的解決方案! – Myrdox 2014-10-27 12:11:49
@Myrdox。 。 。固定。 – 2014-10-27 12:18:17