JOIN with Aggregation & GROUP BY: Performance
Module: Joins & Relationships
Join-aggregate queries can be expensive. Index join columns. Filter with WHERE before GROUP BY. Consider pre-aggregated tables for frequent queries.
Index all join columns
Filter with WHERE to reduce rows before GROUP BY
Use covering indexes
Consider materialized views for complex aggregations
Pre-aggregate in subqueries when appropriate
Using COUNT(*) instead of COUNT(column) with LEFT JOIN
Double-counting from incorrect joins
Not including all SELECT columns in GROUP BY
Filtering aggregates with WHERE instead of HAVING
Not handling NULL in aggregations