PostgreSQL Cheat Sheet/Use DISTINCT ON

Pick one row per group using PostgreSQL's `DISTINCT ON` extension.

Section: Querying, Joins, and Aggregation

Use DISTINCT ON

sql
sql
SELECT DISTINCT ON (customer_id)
  customer_id, order_id, created_at
FROM orders
ORDER BY customer_id, created_at DESC;
Explanation

See summary for usage details.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing Querying, Joins, and Aggregation
Basic SELECT
Fetch a sorted subset of rows.
OpenIn sheetsqlsame section
Inner join
Combine matching rows from two tables.
OpenIn sheetsqlsame section
Extract JSONB field
Extract a text value from a JSONB document.
OpenIn sheetsqlsame section
Left join
Keep all rows from the left side even when no match exists.
OpenIn sheetsqlsame section
Group and filter aggregates
Aggregate rows and then filter groups.
OpenIn sheetsqlsame section
Window function row_number
Assign row numbers within each partition.
OpenIn sheetsqlsame section