- FROM generates the data set
- WHERE filters the generated data set
- GROUP BY aggregates the filtered data set
- HAVING filters the aggregated data set
- SELECT transforms the filters aggregated data set
- ORDER BY sorts the transformed data set
- LIMIT .. OFFSET frames the sorted data set