PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Supprimer les lignes en double basées sur le champ dans une requête de sélection avec PostgreSQL ?

Utilisez DISTINCT ON :

SELECT DISTINCT ON (contenthash)
  id,
  contenthash,
  filesize,
  to_timestamp(timecreated) :: DATE
FROM mdl_files
ORDER BY contenthash, timecreated, id;

DISTINCT ON est une extension Postgres qui s'assure que renvoie une ligne pour chaque combinaison unique de clés entre parenthèses. La ligne spécifique est la première trouvée en fonction du order by clause.