SQL - PostgreSQL: Execution Order

Mind map detailing the execution order of clauses in SQL, used in the article: “SQL - PostgreSQL: Execution Order” on GitHub.

Get Started. It's Free
or sign up with your email address
SQL - PostgreSQL: Execution Order by Mind Map: SQL - PostgreSQL: Execution Order

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

7. PERFORMACE TIPS

7.1. WHERE before JOIN (filter first)

7.2. Indexes on WHERE/JOIN columns

7.3. LIMIT for large queries

7.4. EXPLAIN ANALYZE for debugging