NB
Size: a a a
NB
IZ
NB
NB
IZ
IZ
IZ
NB
NB
IZ
IZ
D
IZ
IZ
IZ
NB
IZ
IZ
select
n.*,
array_cat(array_agg(x.active), array_agg(y.active))
from
n
left join x on x.n_id = n.id
left join y on y.n_id = n.id
group by n.id
having (array_cat(array_agg(x.active), array_agg(y.active)) = ARRAY[]::bool[]) or
(array_cat(array_agg(x.active), array_agg(y.active)) @> ARRAY[false]::bool[] and not
array_cat(array_agg(x.active), array_agg(y.active)) @> ARRAY[true]::bool[])
IZ
IZ