PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Pobierz wartość pola z rekordu, który powoduje, że warunek agregacji jest prawdziwy

with agg as (
    select a, min(d) as d
    from x
    group by a
    having 1 = any(array_agg(b))
)
select distinct on (a, c)
    a, c, d
from
    x
    inner join
    agg using (a, d)
order by a, c

Jeśli min(d) nie jest unikalny w obrębie a grupy to możliwe jest istnienie więcej niż jednego odpowiadającego c . Powyższe zwróci najmniejsze c. Jeśli zamiast tego chcesz największego zrobić

order by a, c desc


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy nazwy funkcji w PostgreSQL są niewrażliwe na wielkość liter?

  2. Schemat relacyjnej bazy danych do pozyskiwania zdarzeń

  3. Postgres, proste zapytania nie używające indeksu

  4. Zarządzaj łączeniem połączeń w aplikacji internetowej dla wielu dzierżawców za pomocą Spring, Hibernate i C3P0

  5. Wyodrębnij dane z bazy PostgreSQL bez użycia pg_dump