1

这是问题所在。我有四列要在选择查询中显示。但是,我希望 RSV 列具有 10-1 的比例,而不是它的 + 和 - 值。最大的数字 +8,6 应该得到 10。底部的几个值可以有 1。我绝对不知道如何解决这个问题......

Nr 是赛马开始编号。一场比赛也可以包含少于十五匹马

    Nr RPO RSP RSV
1 10 9 +5,3 2 9 10 +8,6 3 8 7 -2,7 4 7 8 +3,8 5 6 4 +4,3 6 5 6 -1,0 7 4 5 +3,3 8 3 1 +6,6 9 2 1 +2,1 10 1 1 +3,8 11 1 3 +2,9 12 1 2 -2,1 13 1 1 +1,0 14 1 1 -1,0 15 1 1 +2,4

最后一列显示输出:

               
Nr RPO RSP RSV RSV 输出
2 9 10 8,6 10
8 3 1 6,6 9
1 10 9 5,3 8
5 6 4 4,3 7
4 7 8 3,8 6
10 1 1 3,8 5
7 4 5 3,3 4
11 1 3 2,9 3
15 1 1 2,4 2
9 2 1 2,1 1
13 1 1 1 1
6 5 6 -1 1
14 1 1 -1 1
12 1 2 -2,1 1
3 8 7 -2,7 1
SELECT *
FROM rank
ORDER BY Nr
4

1 回答 1

1

你可以使用这样的东西:

SELECT
  Nr, RPO, RSP, RSV,
  CASE WHEN @row>1 THEN @row:=@row-1 ELSE 1 END RSVOutput
FROM
  yourtable, (SELECT @row:=11) rows
ORDER BY
  RSV DESC

在此处查看小提琴。

于 2013-03-25T10:55:53.297 回答