从两列的总和中选择前x

时间:2015-01-12 00:59:30

标签: mysql

我有一张像这样形成的桌子 SELECT * FROM test最大的地方(数字,初始) | id | username | number | initial |

我需要添加顶部数字和首字母来检索顶部。

以此为例

| id | username | number | initial | total
| 1  | a        | 665    | 441     | 1106
| 2  | b        | 918    | 99      | 1017
| 3  | c        | 611    | 336     | 947
| 4  | d        | 491    | 968     | 1459
| 5  | e        | 414    | 129     | 543

我需要的是先检索最高编号和最后编号。

我已经尝试SELECT * FROM测试WHERE GREATEST(number, initial),但这似乎没有做到这一点。

我对SQL没有那么有经验,但我尝试过的一件事是

1 个答案:

答案 0 :(得分:1)

如果您想获得数字+初始值最高的记录:

select * from test
order by (number + initial) desc
limit 1

或者,如果您想要所有具有最大值数字+初始值的记录:

select * from test
where test.number + test.initial = 
    (select max(test.number + test.initial)
    from test)

或者,如果您想按照数字+ initial的值按降序排序所有记录:

select * from test
order by (number + initial) desc