Пишу такой запрос (здесь упрощенно):
SELECT
`name`,
(SELECT `value` FROM `t` ORDER BY `value` DESC LIMIT 1,1) AS `second_value`,
FROM `t`;
То есть нужно получить второе по большинству значение из таблицы `t` упорядоченной по `value`. Иногда эта таблица имеет только одну строку и тогда SQL возвращает NULL, а нужно что бы возвращала (SELECT `value` FROM `t` ORDER BY `value` DESC LIMIT 0,1) - то есть то единственное значение какое есть в таблице.
Может я вообще все делаю неправильно, поправьте если можете.