Trên PostgreSQL, vị trí thực của hàng được gọi là CTID.
Vì vậy, nếu bạn muốn xem nó, hãy sử dụng QUERY như sau:
SELECT CTID FROM table_name
Để sử dụng nó trên một câu lệnh DELETE để loại bỏ các bản ghi trùng lặp, hãy sử dụng nó như sau:
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);
Hãy nhớ rằng table_name là bảng mong muốn và other_columns là các cột mà bạn muốn sử dụng để lọc.
Tức là:
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);