Подвыборкой на массива агг в PostgreSQL
Есть ли способ использовать значение из агрегатной функции в предложении having в Postgresql 9.2+?
Например, я хотел бы получить каждый monkey_id
со 2-м по старшинству number
> 123, а также второе по старшинству число. В приведенном ниже примере я хотел бы получить (monkey_id 1, число 222).
monkey_id | number
------------------
1 | 222
1 | 333
2 | 0
2 | 444
SELECT
monkey_id,
(array_agg(number ORDER BY number desc))[2] as second
FROM monkey_numbers
GROUP BY monkey_id
HAVING second > 123
Я получаю column "second" does not exist
.