sql >> Base de Datos >  >> RDS >> PostgreSQL

ERROR:la matriz no debe contener valores nulos PostgreSQL

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
  1. Cree una tabla o un resultado de consulta que contenga sus datos relevantes, incl. el NULL valor.
  2. Puede unir los datos, incl. el NULL valor, usando el operador IS NOT DISTINCT FROM , que considera el NULL .
  3. Ahora ha obtenido el id relevante valores que se pueden usar en WHERE filtrar
  4. Finalmente puede hacer su agregación