SQL HAVING выражение
- Предыдущая страница SQL Group By
- Следующая страница SQL ucase()
Подзапрос HAVING
Причина добавления подзапроса HAVING в SQL заключается в том, что ключевое слово WHERE не может использоваться вместе с агрегирующими функциями.
Грамматика SQL HAVING
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value
Пример SQL HAVING
У нас есть следующая таблица "Orders":
O_Id | OrderDate | OrderPrice | Customer |
---|---|---|---|
1 | 2008/12/29 | 1000 | Bush |
2 | 2008/11/23 | 1600 | Carter |
3 | 2008/10/05 | 700 | Bush |
4 | 2008/09/28 | 300 | Bush |
5 | 2008/08/06 | 2000 | Adams |
6 | 2008/07/21 | 100 | Carter |
Теперь мы хотим найти клиентов, у которых общая сумма заказа меньше 2000.
Мы используем следующий SQL-запрос:
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000
Результаты набора аналогичны:
Customer | SUM(OrderPrice) |
---|---|
Carter | 1700 |
Теперь мы хотим найти клиентов "Bush" или "Adams", у которых общая сумма заказа превышает 1500.
Мы добавили в SQL-запрос обычный подзапрос WHERE:
SELECT Customer,SUM(OrderPrice) FROM Orders WHERE Customer='Bush' OR Customer='Adams' GROUP BY Customer HAVING SUM(OrderPrice)>1500
Результаты набора:
Customer | SUM(OrderPrice) |
---|---|
Bush | 2000 |
Adams | 2000 |
- Предыдущая страница SQL Group By
- Следующая страница SQL ucase()