是否有一种方法可以在Postgresql 9.2+中的having子句中使用聚合函数的值?
例如,我想要获取每个monkey_id
,它们的第二高的number
> 123,并且获取第二高的数字。在下面的示例中,我想要获取(monkey_id 1, number 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
我看到了错误信息:列“second”不存在
。