Как получить n-ый по величине элемент из набора значений?
Уровень: Middle
Ответ
Один из подходов – отсортировать данные и выбрать строку с нужным порядковым номером. Многие СУБД поддерживают для этого OFFSET (смещение) и LIMIT. Например, чтобы взять 5-ый по величине: ORDER BY value DESC LIMIT 1 OFFSET 4 (в MySQL/PostgreSQL). В SQL Server: использовать подзапрос с TOP 5 и исключить TOP 4, либо применять оконную функцию ROW_NUMBER() и потом выбрать строку с номером = n. Общая идея: либо многократно применить MAX в подзапросах, либо воспользоваться ранжированием/сортировкой и отступом.