What is the processing order of logical parts of the following query?

SELECT ClientId, SUM(t2.Amount) total FROM cliens t1 JOIN orders t2 ON t1.ClientId = t2.ClientId WHERE ClientName Like 'John%' GROUP BY ClientId HAVING t2.Amount > 100 ORDER BY total DESC LIMIT 1

Experience Level: Medior
Tags: DatabasesSQL

Answer

The database engine processes the query in the following order:

  1. FROM and JOINs - determines and filters the rows using criteria in ON clause
  2. WHERE - applies additional filters on the rows
  3. GROUP BY - groups the rows into groups by column values
  4. HAVING - filters groups
  5. ORDER BY - orders the remaining rows/groups
  6. LIMIT - filters on the remaining rows/groups
  7. SELECT - returns the selected columnd

Comments

No Comments Yet.
Be the first to tell us what you think.