El && el operador no admite NULL valores. Entonces, necesitas otro enfoque. Por ejemplo, podría unir los datos a la tabla primero. Esto te da el id s que están vinculados a sus datos requeridos. En el segundo paso, puede ordenar todos los valores utilizando estos id s.
demostración paso a paso:db<>fiddle
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
- Cree una tabla o un resultado de consulta que contenga sus datos relevantes, incl. el
NULLvalor. - Puede unir los datos, incl. el
NULLvalor, usando el operadorIS NOT DISTINCT FROM, que considera elNULL. - Ahora ha obtenido el
idrelevante valores que se pueden usar enWHEREfiltrar - Finalmente puede hacer su agregación