PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

ERREUR :le tableau ne doit pas contenir de valeurs nulles PostgreSQL

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.

démo pas à pas :db<>violon

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. Créez un tableau ou un résultat de requête contenant vos données pertinentes, y compris le NULL valeur.
  2. Vous pouvez joindre les données, incl. le NULL valeur, en utilisant l'opérateur IS NOT DISTINCT FROM , qui considère le NULL .
  3. Vous avez maintenant récupéré l'id correspondant valeurs utilisables dans le WHERE filtre
  4. Enfin, vous pouvez faire votre agrégation