PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Запазва реда на distinct вътре в string_agg

Както разбрахте, не можете да комбинирате DISTINCT и ORDER BY ако първо не подредите по отделния израз:

  • нито в агрегати:

  • нито в SELECT:

Въпреки това може да използва нещо като

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

с помощта на функция arry_uniq_stable който премахва дубликати в масив без промяна на неговия ред, както дадох пример за https:// stackoverflow.com/a/42399297/5805552

Моля, внимавайте да използвате ORDER BY израз, който всъщност ви дава детерминистичен резултат. С примера, който сте дали, tid сам по себе си не би бил достатъчен, тъй като има дублиращи се стойности (8) с различни 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. Отместване на местната часова зона в PostgreSQL

  2. Поддържане на postgres изцяло в паметта

  3. NULL стойности за колони referential_constraints.unique_constraint_* в информационната схема

  4. Функция на PostgreSQL за итерация/действие върху много редове със състояние

  5. Как да чета JSON от база данни PostgreSQL на Doobie Scala с Circe?