SQL - PostgreSQL: Execution Order
by Yuri Pontes
1. FROM
1.1. JOINs
1.1.1. LEFT
1.1.1.1. INNER
1.1.1.1.1. TABLE LEFT (TL)
1.1.2. INNER
1.1.2.1. T1 LEFT
1.1.2.1.1. EMPTY LINES TR = NULL
1.1.2.2. T1 RIGHT
1.1.2.2.1. EMPTY LINES = NULL
1.1.3. RIGHT
1.1.3.1. INNER
1.1.3.1.1. TABLE RIGHT (TR)
1.1.4. FULL
1.1.4.1. RIGHT
1.1.4.1.1. FULL LINES
1.1.4.2. LEFT
1.1.4.2.1. FULL LINES
2. WHERE
2.1. LINES
2.1.1. FROM
2.1.1.1. HAVING
2.1.2. JOINs
2.1.2.1. HAVING
2.2. COMPARISON OPERATORS
2.2.1. =, ! = or < >, >, <, > =, < =, IN, BETWEEN, LIKE, IS NULL
2.3. GROUP BY
2.3.1. HAVING
2.3.1.1. COUNT()
2.3.1.2. SUM()
2.3.1.3. MAX()
2.3.1.4. MIN()
2.3.1.5. AVG()
3. GROUP BY
3.1. UNAGGREGATED COLUMNS (SELECT)
3.2. HAVING
4. SELECT
4.1. DISTINCT
4.2. COLUMNS
4.3. AS (COLUMNS)
4.4. AGGREGATE FUNCTIONS
4.4.1. COUNT(), SUM(), AVG(), MAX(), MIN()
5. ORDER BY
5.1. ASC
5.1.1. WHERE
5.1.1.1. GROUP BY
5.1.1.1.1. HAVING
5.2. DESC
5.2.1. WHERE
5.2.1.1. GROUP BY
5.2.1.1.1. HAVING
6. LIMIT
6.1. LINES
6.1.1. ORDER BY