sql >> Database >  >> RDS >> PostgreSQL

Behoud de volgorde van onderscheiden binnen string_agg

Zoals je hebt ontdekt, kun je DISTINCT . niet combineren en ORDER BY als u niet eerst op de afzonderlijke uitdrukking bestelt:

  • noch in aggregaten:

  • noch in SELECT:

Zou echter iets als

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

met behulp van een functie arry_uniq_stable die duplicaten in een array verwijdert zonder de volgorde te wijzigen, zoals ik een voorbeeld gaf voor in https:// stackoverflow.com/a/42399297/5805552

Gebruik een ORDER BY uitdrukking die u feitelijk een deterministisch resultaat geeft. Met het voorbeeld dat je hebt gegeven, tid alleen zou niet genoeg zijn, want er zijn dubbele waarden (8) met verschillende nome .



  1. PG::UndefinedTable:ERROR:relatie bestaat niet met een juiste Rails-naamgeving en -conventie

  2. php laravel artisan migreert fout in model?

  3. mogelijk om de queryset te filteren na het opvragen? django

  4. De max_connections in MySQL 5.7