PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

ГРЕШКА:масивът не трябва да съдържа нули PostgreSQL

&& операторът не поддържа NULL стойности. Така че имате нужда от друг подход. Например можете първо да присъедините данните към таблицата. Това ви дава id s, които са свързани с необходимите ви данни. На втората стъпка можете да арегирате всички стойности, като използвате тези id с.

демонстрация стъпка по стъпка: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. Създайте таблица или резултат от заявка, която съдържа вашите подходящи данни, вкл. NULL стойност.
  2. Можете да присъедините данните, вкл. NULL стойност, използвайки оператора IS NOT DISTINCT FROM , който разглежда NULL .
  3. Сега сте извлекли съответния id стойности, които могат да се използват в WHERE филтър
  4. Най-накрая можете да извършвате агрегирането си


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да проверите вида на стойността в postgres

  2. Как да свържа C# с Postgres?

  3. Postgres:Как да конвертирам json низ в текст?

  4. Postgresql разлика между датите на две колони?

  5. Django JSONField