2015-01-12 3 views
0

У меня есть таблица, которая сформирована как этот 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

Если вы хотите, чтобы получить запись с наибольшим значением числа + начального:

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) 

или, если вы хотите заказать все записи по значению числа + начальным в порядке убывания:

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

Последний, по-моему, мне нужен, вот и все! Я думал, что это сложнее. Большое спасибо. – user1935643

Смежные вопросы