3. WHERE GROUP BY CROSS JOIN ORDER BY INNER JOIN SELF JOIN <AGG(f1)...> * LIMIT <[f1], ... > <[f1], AGG(f2)> SELECT < [t1.][f1]...> < [t1.][f1],... AGG([t2.][f2])...> FROM <t1> FROM <t1>, <t2>,... <PREDICATE> <PREDICATE on Aggregate> DISTINCT HAVING ON FROM <table_name>... <table_name>... LEFT JOIN <[t1.][f1]...> JOIN PREDICATE <[t1.][f1]...>