У меня есть вопрос о том, как выбрать второе, третье, четвертое и пятое по величине число в таблице. Чтобы выбрать самую большую строку, которую я использую:
$max = SELECT max(money) FROM table
Щас хочу уточнить $second_max
, $third_max
, $fourth_max
а также $fifth_max
,
Кто-нибудь знает, как изменить мой предыдущий SQL select max()
легко указать второй максимум, третий максимум и т. д.
Я не хочу использовать:
select money from table order by money desc limit 5;
Потому что я хочу их всех в разных переменных.
select money from table order by money desc LIMIT 5
Вероятно, самый простой способ — разместить их в отдельных строках:
select t.money
from table t
group by t.money
order by money desc
limit 5;
The next easiest thing is to put them in a comma-separated list:
select group_concat(money order by money desc) as monies
from (select t.money
from table t
group by t.money
order by money desc
limit 5
) T
Просто это:
SELECT money
FROM yourtable
ORDER BY money DESC
LIMIT 5
Вы получите набор результатов с 5 записями, упорядоченный по верхним значениям денег — при условии, что у вас на самом деле есть 5+ записей в таблице.
ИСПОЛЬЗОВАТЬ SQL
select money from table order by money desc limit 5;
Пять строк представлены как max, вторичные, … стоимость денег.
В ORACLE вы можете сделать следующее:
SELECT *
FROM (
SELECT ADRESSID,
ROW_NUMBER() OVER (ORDER BY ADRESSID DESC) AS ROW_NUM
FROM ADRESSTABLE
) t
WHERE ROW_NUM = 1
OR ROW_NUM = 3
OR ROW_NUM = 5;