有没有办法在 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
I get column "second" does not exist
.
您必须将其放在having 子句中
SELECT
monkey_id
FROM monkey_numbers
GROUP BY monkey_id
HAVING array_agg(number ORDER BY number desc)[2] > 123
解释是,having
将在之前执行select
so second
那时还不存在。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)