SQL GROUP BY Function

Quick summary: The SQL GROUP BY clause groups rows that share the same values.

SQL GROUP BY Syntax

SELECT column, aggregate_function(column) FROM table_name GROUP BY column
SQL

SQL GROUP BY Basic examples

SELECT status, COUNT(*) FROM orders GROUP BY status;
SQL
Output:
Order count per status

Aggregates rows by status.

SQL GROUP BY Real-world usage

SELECT user_id, SUM(total) FROM orders GROUP BY user_id;
SQL
Output:
Total per user

Builds reports and summaries.

SQL GROUP BY Edge cases

SELECT id, COUNT(*) FROM users GROUP BY id;
SQL
Output:
One row per user

Grouping by unique columns has no effect.

SQL GROUP BY Common mistakes

Selecting non-aggregated columns

All selected columns must be aggregated or grouped.

Incorrect
SELECT id, email, COUNT(*) FROM users GROUP BY id;
Correct
SELECT id, COUNT(*) FROM users GROUP BY id;

Only include grouped or aggregated columns.

SQL GROUP BY Frequently Asked Questions

What does GROUP BY do in SQL?

Groups rows by column values.

Use case of GROUP BY?

Aggregations.

Syntax?

GROUP BY column.

Common mistake?

Selecting non-aggregated columns.

Used with aggregates?

Yes.

Performance?

Depends on data size.

Supports multiple columns?

Yes.

Order guaranteed?

No.

Used in reports?

Yes.

Alternative?

Window functions.

Handles NULL?

Yes.

Best practice?

Use indexes on grouped columns.

SQL GROUP BY Related SQL Keywords