How to Find Duplicate Rows in PostgreSQL
Last updated July 25, 2026 · By the SaturnSQL team
Group by the columns that should be unique and keep groups with HAVING COUNT(*) > 1. Join the result back to the table when you need to see the full duplicate rows.
SELECT email, COUNT(*) AS occurrences
FROM customers
GROUP BY email
HAVING COUNT(*) > 1
ORDER BY occurrences DESC;See the full rows
SELECT c.*
FROM customers c
JOIN (
SELECT email FROM customers GROUP BY email HAVING COUNT(*) > 1
) d ON d.email = c.email
ORDER BY c.email, c.id;Run this in SaturnSQL
SaturnSQL is a browser-based SQL editor for teams: shared query library, schema-aware autocomplete, and scheduled exports to Google Sheets and Slack.
Try it free