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

Вземете стойност на полето от запис, който кара агрегатно условие да бъде вярно

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

Ако min(d) не е уникален в рамките на a група, тогава е възможно да съществува повече от един съответстващ c . Горното ще върне най-малкото c. Ако искате най-голямото, направете вместо това

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. блокиране в postgre при проста заявка за актуализиране

  2. NВлезте в PostgreSQL връзка

  3. Показване на име на колона с максимална стойност между няколко колони

  4. как да съхранявате сериализиран обект с пространство от имена в база данни с помощта на pdo php

  5. Създаването на разширение работи ли в режим за един потребител в postgre?