Filter aggregated groups

Return customer_id and order count for customers with more than one order, ordered by customer_id.

Try it yourself

Open a fresh temporary sample shop dataset. Write your query and use Check answer. Checking uses a separate, clean sample so edits to your workspace cannot change the expected answer. Matches are based on this dataset, not a proof for every possible database.

Open exercise →

Sample schema

customers(id, name, email, country, joined_at)
products(id, name, category, price)
orders(id, customer_id, ordered_at, status, total)
order_items(id, order_id, product_id, quantity, unit_price)

About this dataset · Learning paths · SQL reference

Show a hint

HAVING filters the result of COUNT(*).

Show one solution
SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id HAVING COUNT(*) > 1 ORDER BY customer_id;

Other queries can produce the same answer. Column aliases are ignored; column order and row order are checked.

Keep practicing

Connect customers and orders → · All exercises