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
NULL
valeur. - Vous pouvez joindre les données, incl. le
NULL
valeur, en utilisant l'opérateurIS NOT DISTINCT FROM
, qui considère leNULL
. - Vous avez maintenant récupéré l'
id
correspondant valeurs utilisables dans leWHERE
filtre - Enfin, vous pouvez faire votre agrégation