PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Mengurutkan nilai kolom yang berbeda dengan (nilai pertama) kolom lain dalam fungsi agregat

Hilangkan kebutuhan untuk melakukan pembedaan dengan melakukan pra-agregasi

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

Jawaban @Gordon membawa poin bagus. Itu jika ada kolom lain yang dibutuhkan. Dalam hal ini distinct on direkomendasikan

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kolom Postgres tidak ada

  2. Bagaimana cara saya meminta string dari JSON berdasarkan string lain di dalam JSON di PostgreSQL?

  3. postgres:temukan semua kolom integer dengan nilai maks saat ini di dalamnya

  4. Kunci asing PostgreSQL tidak ada, masalah warisan?

  5. Rails:Memanggil .limit(5) mengubah urutan hasil