Postgresql 如果我不能在where子句中使用聚合,如何获得结果

Postgresql 如果我不能在where子句中使用聚合,如何获得结果,postgresql,Postgresql,好的,我有一个查询,如果数组的第一个值\u agg=natural,我需要ommit结果,所以我想我可以这样做: select visitor_id, array_agg(code order by session_start) codes_array from mark_conversion_sessions where conv_visit_num2 < 2 and max_conv = 1 and (array_agg(code order by ses

好的,我有一个查询,如果数组的第一个值\u agg=natural,我需要ommit结果,所以我想我可以这样做:

select
  visitor_id,
  array_agg(code
   order by session_start) codes_array
from mark_conversion_sessions
where conv_visit_num2 < 2
  and max_conv = 1
  and (array_agg(code
    order by session_start))[1] != 'natural'
group by visitor_id
那么有没有办法在where子句中引用数组_agg

谢谢

having子句的作用类似于分组数据上的where子句。将使用聚合的标准移动到having子句中,例如:

select
  visitor_id,
  array_agg(code order by session_start) codes_array
from mark_conversion_sessions
where 
  conv_visit_num2 < 2
  and max_conv = 1
group by visitor_id
having
    (array_agg(code order by session_start))[1] != 'natural'
文件:

使用have尝试使用groupby和have子句。过滤行,过滤组。这正是我需要的。非常感谢。
select
  visitor_id,
  array_agg(code order by session_start) codes_array
from mark_conversion_sessions
where 
  conv_visit_num2 < 2
  and max_conv = 1
group by visitor_id
having
    (array_agg(code order by session_start))[1] != 'natural'