Sur PostgreSQL, l'emplacement physique de la ligne est appelé CTID.
Donc, si vous voulez le voir, utilisez une requête comme celle-ci :
SELECT CTID FROM table_name
Pour l'utiliser sur une instruction DELETE pour supprimer les enregistrements en double, utilisez-le comme ceci :
DELETE FROM table_name WHERE CTID NOT IN (
SELECT RECID FROM
(SELECT MIN(CTID) AS RECID, other_columns
FROM table_name GROUP BY other_columns)
a);
N'oubliez pas que table_name est la table souhaitée et other_columns sont les colonnes que vous souhaitez utiliser pour filtrer cela.
C'est-à-dire :
DELETE FROM user_department WHERE CTID NOT IN (
SELECT RECID FROM
(SELECT MIN(CTID) AS RECID, ud.user_id, ud.department_id
FROM user_department ud GROUP BY ud.user_id, ud.department_id)
a);