подсчитывает сумму только несовпадающих рейтингов (табл. 3.24). Таблица 3.24. Результат выполнения запроса

Число, возвращаемое этим запросом, является суммой значений 1000 и 1500; еще одно значение 1000, имеющееся в столбце rating, запросом игнорируется.

Если в запросе вы укажете какое-либо условие отбора, то суммирование произойдет только по тем строкам, которые удовлетворяют условию отбора.

Например, запрос

SELECT SUM(amount) FROM Orders WHERE customer_id = 533;

вычисляет общую сумму заказов клиента с идентификатором 533 (табл. 3.25). Таблица 3.25. Результат выполнения запроса

Далее мы рассмотрим функцию вычисления среднего значения.

AVG()

Данная функция возвращает среднее арифметическое значений в столбце (сумму значений, деленную на количество значений). Неопределенные значения при этом не учитываются. Если в запросе вы укажете какое-либо условие отбора, то суммирование произойдет только по тем строкам, которые удовлетворяют условию отбора. Если запросом не найдено ни одной строки или все значения в столбце равны NULL, то функция возвращает значение NULL.

Например, запрос

SELECT AVG(rating) FROM Customers;

возвращает средний рейтинг клиентов – величину (1000 + 1500 + 1000) /3 (табл. 3.26). Таблица 3.26. Результат выполнения запроса

Исключить повторяющиеся значения при подсчете среднего можно с помощью параметра DISTINCT.

Например, запрос

SELECT AVG(DISTINCT rating) FROM Customers;

подсчитывает среднее только несовпадающих рейтингов – величину (1000 + + 1500) / 2; еще одно значение 1000, имеющееся в столбце rating, запросом игнорируется (табл. 3.27). Таблица 3.27. Результат выполнения запроса

Функцию AVG() можно использовать для отбора тех значений, которые больше среднего, или тех, которые меньше среднего.

Например, запрос

SELECT * FROM Customers WHERE rating > (SELECT AVG(rating) FROM Customers);

выводит информацию о клиентах, чей рейтинг выше среднего (см. результат запроса в табл. 3.12). Вложенный запрос возвращает средний рейтинг клиента (см. табл. 3.26), а внешний – отбирает строки таблицы Customers, в которых значение столбца rating больше значения, возвращенного подзапросом. Отметим, что в данном случае вложенный запрос возвращает единственное значение, поэтому с оператором «больше» нет необходимости использовать ключевое слово ANY или ALL (о них рассказывалось в подразделе «Операторы сравнения с результатами вложенного запроса»).

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

MAX()

Данная функция возвращает максимальное значение в столбце. Если в запросе вы укажете какое-либо условие отбора, то максимальное значение выбирается из строк, удовлетворяющих условию отбора. Если запросом не найдено ни одной строки или все значения в столбце равны NULL, то функция возвращает значение NULL.

Например, запрос

SELECT MAX(rating) FROM Customers;

возвращает наибольший из рейтингов клиентов – 1500 (табл. 3.28). Таблица 3.28. Результат выполнения запроса

Функцию MAX() можно использовать для поиска строк, в которых достигается максимальное значение столбца.

Например, запрос

SELECT * FROM Customers WHERE rating = (SELECT MAX(rating) FROM Customers);

Перейти на страницу:

Похожие книги