Удостоверьтесь, что Вам действительно нужен он. Сделайте Google для "одноэлементного антишаблона" для наблюдения некоторых аргументов против него. Нет ничего по сути неправильно с ним, я предполагаю, но это - просто механизм для представления некоторого глобального ресурса/данных, так удостоверьтесь, что это - лучший способ. В особенности я нашел внедрение зависимости более полезным особенно, если Вы также используете модульные тесты, потому что DI позволяет Вам использовать дразнившие ресурсы для тестирования.
in order:
FROM & JOINs determine & filter rows
WHERE more filters on the rows
GROUP BY combines those rows into groups
HAVING filters groups
ORDER BY arranges the remaining rows/groups
LIMIT filters on the remaining rows/groups
WHERE is first, then you GROUP the result of the query, and last but not least HAVING-clause is taken to filter the grouped result. This is the "logical" order, I don't know how this is technically implemented in the engine.
I think it is implemented in the engine as Matthias said: WHERE, GROUP BY, HAVING
Was trying to find a reference online that lists the entire sequence (i.e. "SELECT" comes right down at the bottom), but I can't find it. It was detailed in a "Inside Microsoft SQL Server 2005" book I read not that long ago, by Solid Quality Learning
Edit: Found a link: http://blogs.x2line.com/al/archive/2007/06/30/3187.aspx
Подумайте, что вам нужно сделать, если вы хотите реализовать:
Порядок следующий: WHERE, GROUP BY и HAVING.