PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

FEHLER:Array darf keine Nullen PostgreSQL enthalten

Der && Operator unterstützt NULL nicht Werte. Sie brauchen also einen anderen Ansatz. Beispielsweise könnten Sie die Daten zuerst mit der Tabelle verknüpfen. Dadurch erhalten Sie die id s, die mit Ihren gewünschten Daten verknüpft sind. Im zweiten Schritt können Sie alle Werte mit dieser id arrangieren s.

Schritt-für-Schritt-Demo: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. Erstellen Sie eine Tabelle oder ein Abfrageergebnis, das Ihre relevanten Daten enthält, inkl. der NULL Wert.
  2. Sie können die Daten inkl. der NULL -Wert mit dem Operator IS NOT DISTINCT FROM , der den NULL berücksichtigt .
  3. Jetzt haben Sie die relevante id abgerufen Werte, die im WHERE verwendet werden können filtern
  4. Endlich können Sie Ihre Aggregation durchführen