sql >> Databasteknik >  >> RDS >> PostgreSQL

Ordna distinkta kolumnvärden efter (första värdet av) annan kolumn i aggregatfunktion

Eliminera behovet av att göra en distinkt genom att pre-aggregera

select string_agg(sometext, ' ' order by numval)
from (
    select sometext, min(numval) as numval
    from t
    group by sometext
) s

@Gordons svar kom med en bra poäng. Det är om det finns andra nödvändiga kolumner. I det här fallet en distinct on rekommenderas

select x, string_agg(sometext, ' ' order by numval)
from (
    select distinct on (sometext) *
    from t
    order by sometext, numval
) s
group by x


  1. Varför returnerar detta resurs-id #2?

  2. Hur genererar man hela databasskriptet i MySQL Workbench?

  3. Hög tillgänglighet på en knapp budget - Utplacera ett MySQL Galera-kluster med minst två noder

  4. I PostgreSQL, har flera UPPDATERINGAR till olika rader i samma tabell motstridiga lås?