Le && l'opérateur ne prend pas en charge NULL valeurs. Donc, vous avez besoin d'une autre approche. Par exemple, vous pouvez d'abord joindre les données à la table. Cela vous donne le id s qui sont liés à vos données requises. À la deuxième étape, vous pouvez arréger toutes les valeurs en utilisant ces id s.
SELECT
id,
ARRAY_AGG(session_os) -- 4
FROM t
WHERE id IN ( -- 3
SELECT
id
FROM
t
JOIN (
SELECT unnest(ARRAY[1, null]) as a -- 1
)s ON s.a IS NOT DISTINCT FROM t.session_os -- 2
)
GROUP BY id
- Créez un tableau ou un résultat de requête contenant vos données pertinentes, y compris le
NULLvaleur. - Vous pouvez joindre les données, incl. le
NULLvaleur, en utilisant l'opérateurIS NOT DISTINCT FROM, qui considère leNULL. - Vous avez maintenant récupéré l'
idcorrespondant valeurs utilisables dans leWHEREfiltre - Enfin, vous pouvez faire votre agrégation