PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

ERRORE:l'array non deve contenere null PostgreSQL

Il && l'operatore non supporta NULL i valori. Quindi, hai bisogno di un altro approccio. Ad esempio, potresti prima unire i dati alla tabella. Questo ti dà l'id s che sono collegati ai dati richiesti. Nel secondo passaggio puoi arretrare tutti i valori usando questi id s.

demo passo passo:db<>violino

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. Crea una tabella o un risultato di query che contenga i tuoi dati rilevanti, incl. il NULL valore.
  2. Puoi unire i dati, incl. il NULL valore, utilizzando l'operatore IS NOT DISTINCT FROM , che considera il NULL .
  3. Ora hai recuperato l'id pertinente valori che possono essere utilizzati in WHERE filtro
  4. Finalmente puoi fare la tua aggregazione