- `GROUP BY` clause: Used to group rows that have the same values in one or more columns into a summary row. - `COUNT()`: An aggregate function that returns the number of rows in a group. - `HAVING` clause: Used to filter groups based on a specified condition, typically involving aggregate functions. It acts like a `WHERE` clause for groups.