double arrow

Предложение HAVING

Если в результирующих наборах данных нужно выдавать агрегацию не по всем группам, а только по тем из них, которые отвечают некоторому условию, после предложения GROUP BY указывают предложение

HAVING <агрегатная функция> <отношение> <значение>

агрегатная функция − одна из функций MIN, MAX, AVG, SUM;

отношение − одна из операций отношения =, <>, <, >, <=, >=;

значение − константа, результат вычисления выражения или единичное значение, возвращаемое вложенным оператором SELECT.

Таким образом, после HAVING указываются условия, которые отличаются от условий, определяемых в предложении WHERE, одним важным обстоятельством: в них обязательно должна быть указана одна из агрегатных функций, в то время как в предложении WHERE такие функции указывать нельзя.

Агрегатные функции могут применяться как в выражении вывода результатов строки SELECT, так и в выражении условия обработки сформированных групп HAVING. В этом случае каждая агрегатная функция вычисляется для каждой выделенной группы. Значения, полученные при вычислении агрегатных функций, могут быть использованы для вывода соответствующих результатов или для условия отбора групп.

Пример. Построить запрос, который выводит среднюю стоимость заказа для каждого служащего из числа тех, у кого общая стоимость заказа превышает $30 000?

SELECT ID_SLZH, AVG(PRICE)

FROM ZAKAZY

GROUP BY ID_SLZH

HAVING SUM(PRICE) > 30 000.00

4.3.3 Предложение ORDER BY − определение сортировки

Строки результатов запроса, как и строки таблицы базы данных, не имеют определенного порядка. Но включив в инструкцию SELECT предложение ORDER BY, можно отсортировать результаты запроса.

Результирующий набор данных можно отсортировать с помощью предложения

ORDER BY <список_столбцов>

список_столбцов − содержит имена столбцов, по которым будет производиться сортировка. Если указаны два и более столбцов, первый столбец будет использован для глобальной сортировки, второй столбец для сортировки внутри группы, определяемой единым значением первого столбца, и т. д. Например, результаты следующего запроса отсортированы по двум столбцам, REGION, CITY.

Пример. Показать физические объемы продаж для каждого офиса, отсортированные в алфавитном порядке по названиям регионов и в каждом регионе - по названиям городов.

SELECT CITY, REGION, SALES

FROM OFFISY

ORDER BY REGION, CITY

В предложении ORDER BY можно выбрать возрастающий или убывающий порядок сортировки. По умолчанию данные сортируются в порядке возрастания. Чтобы сортировать их по убыванию, следует включить в предложение сортировки ключевое слово DESC, как это сделано в следующем примере.

Пример. Показать список офисов, отсортированный по фактическим объемам продаж в порядке убывания.

SELECT CITY, REGION, SALES

FROM OFFISY

ORDER BY SALES DESC


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: