PostgreSQL Cheat Sheet/Group and filter aggregates

Aggregate rows and then filter groups.

Section: Querying, Joins, and Aggregation

Group and filter aggregates

sql
sql
SELECT customer_id, count(*) AS order_count
FROM orders
GROUP BY customer_id
HAVING count(*) >= 5;
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
Use DISTINCT ON
Pick one row per group using PostgreSQL's `DISTINCT ON` extension.
OpenIn sheetsqlsame section
Inner join
Combine matching rows from two tables.
OpenIn sheetsqlsame section
Left join
Keep all rows from the left side even when no match exists.
OpenIn sheetsqlsame section
Window function row_number
Assign row numbers within each partition.
OpenIn sheetsqlsame section
Common table expression
Use a CTE to structure a multi-step query.
OpenIn sheetsqlsame section