sql >> Databasteknik >  >> RDS >> PostgreSQL

Hämta fältvärde från en post som gör att ett aggregerat villkor är sant

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

Om min(d) är inte unik inom a grupp så är det möjligt att existera mer än en motsvarande c . Ovanstående kommer att returnera den minsta c. Om du vill ha den största gör in istället

order by a, c desc


  1. Uppdatera primärnyckelvärdet med hjälp av enhetsramverket

  2. Hur får jag det maximala värdet för ett heltal i SQL?

  3. SQL OVER()-satsen - när och varför är den användbar?

  4. Mysql Split String and Select med resultat