SELECT ('столбцы через запятую или символ * для выбора всех столбцов') FROM ('таблицы через запятую') WHERE ('условие или фильтр') GROUP BY ('столбцы через запятую, по которым нужно сгруппировать данные') HAVING ('условие в уже сгрупированных данных') ORDER BY ('столбцы через запятую, по которым нужно отсортировать вывод')
WHERE = (равенство); <> или != (неравенство); < (меньше); <= (меньше или равно) или !> (не больше); > (больше); >= (больше или равно) или !< (не меньше); BETWEEN (между двумя значениями); IS NULL (пустое поле). Если требуется указать значение строки, заключите его в апостроф Фильтр по нескольким условиям WHERE department IN ('IT', 'Marketing')
GROUP BY создаются группы данных GROUP BY указывается после WHERE и перед ORDER BY. Это удобно для получения итоговых значений. 1) При вложении данные будут суммироваться для последней заданной группы, а не для отдельно для каждого столбца. 2) В предложении GROUP BY можно указать только столбцы выборки или выражения. В нем не указывается функция группирования и не применяются псевдонимы. 3) Можно указать столько столбцов, сколько нужно. В результате группы вкладываются друг в друга. 4) Если в столбце, по которому производится группирование, встречается одна или несколько строк со значением NULL, они выделяются в отдельную группу
HAVING напоминает WHERE, но фильтрует не строки, а группы можно использовать с любыми операторами. В этом предложении используется тот же синтаксис, что и в предложении WHERE: SELECT department, COUNT (*) AS cnt FROM Employees GROUP BY department HAVING COUNT(*) >= 3 Фильтрация выполняется по итоговому значению группы. Этим HAVING отличается от WHERE, которое фильтрует по значениям строк. Эти предложения можно использовать вместе. Например, можно узнать, сколько сотрудников в подразделениях со штатом более трех человек, получают более 1000: SELECT department, COUNT (*) AS cnt FROM Employees WHERE salary > 1000 GROUP BY department HAVING COUNT(*) >= 3 Сначала выбираются все строки, где в столбце salary содержатся значения больше 1000. А затем выбираются только те группы, в которых не меньше трех записей.
Объединение таблиц JOIN Вместо предложения WHERE используется предложение ON, синтаксис которого совпадает с синтаксисом WHERE. SELECT first_name, last_name, order_id FROM Employees INNER JOIN Orders ON Employees.employee_id = Orders.employee_id