Выборка и манипуляции с наибольшим числом в выборке

Рейтинг: 0Ответов: 1Опубликовано: 08.09.2014

Есть запрос, который возвращает стоимость позиций в заказе (позиций может быть от 1 до over 9000).

Как выбрать наибольшие число из выборки и произвести с ним математические операции, а потом объединить с оставшимися числами?

Обновление

Допустим, запрос вернул нам 5 строк:
131
79
65
42
1

Мне нужно среди этих чисел выбрать наибольшее и вычесть из неё другое число. Но сделать это нужно только с наибольшем числом в запросе, а в результате вернуть модифицированное наибольшее и все остальные числа.

Ответы

▲ 1

Попробовал для sqlite3 набросать через CASE:

SELECT CASE

WHEN id=(SELECT max(id) FROM m) THEN id-1 ELSE id END

FROM m;

Таким образом, если значение выбранного идентификатора (id) максимальное в таблице, вернется значение данного идентификатора без единицы, иначе вернется значение идентификатора без изменений.

Подзапрос работает и без limit 1, может быть, в каком-то другом случае (СУБД) и придется использовать.

Простите, нет возможности проверить на transact-sql.