Порядок выполнения SQL-запросов

ВЫПОЛНЕНИЕ ЗАПРОСА

Еще более интересно, как выполняется запрос внутри движка. Этот вопрос, кстати, достаточно часто задают на собеседованиях. Порядок выполнения и написания запроса отличается:

FROM

    ...

WHERE

    ...

GROUP BY

    ...

HAVING

    ...

SELECT

    ...

ORDER BY

    ...

По сути, в начале мы берем таблицу, фильтруем ее, а потом группируем и выводим данные. 

Как видите, невозможность производить фильтрацию результатов агрегации в where, потому что в where мы только отбираем строки из первоначальной таблицы, а группируем и агрегируем уже потом.

Советуем изучить порядок выполнения запроса, потому что это помогает понимать SQL в некой структурно связанной картине.