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

Zachowaj kolejność odrębnych wewnątrz string_agg

Jak już wiesz, nie można łączyć DISTINCT i ORDER BY jeśli najpierw nie uporządkujesz według odrębnego wyrażenia:

  • ani w agregatach:

  • ani w WYBIERZ:

Jednak może użyć czegoś takiego jak

array_to_string(arry_uniq_stable(array_agg(nome ORDER BY tid DESC)), ', ') 

za pomocą funkcji arry_uniq_stable który usuwa duplikaty w tablicy bez zmiany jej kolejności, tak jak podałem przykład w https:// stackoverflow.com/a/42399297/5805552

Pamiętaj, aby użyć ORDER BY wyrażenie, które faktycznie daje deterministyczny wynik. W podanym przez Ciebie przykładzie tid sam byłby niewystarczający, ponieważ istnieją zduplikowane wartości (8) z różnymi nome .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak stworzyć odpowiednik kolumny tożsamości serwera SQL w Postgresie

  2. Eksportuj duże zbiory danych z PostgreSQL do AWS s3

  3. Jak zwrócić tylko czas pracy z rezerwacji w PostgreSql?

  4. Nie rób nic w procedurze wyzwalania

  5. Django Different nie działa