только по тем строкам, которые удовлетворяют условию отбора.
Например, запросвычисляет общую сумму заказов клиента с идентификатором 533 (табл. 3.25). Таблица 3.25. Результат выполнения запроса
Далее мы рассмотрим функцию вычисления среднего значения.
AVG()Данная функция возвращает среднее арифметическое значений в столбце (сумму значений, деленную на количество значений). Неопределенные значения при этом не учитываются. Если в запросе вы укажете какое-либо условие отбора, то суммирование произойдет только по тем строкам, которые удовлетворяют условию отбора. Если запросом не найдено ни одной строки или все значения в столбце равны NULL, то функция возвращает значение NULL.
Например, запросвозвращает средний рейтинг клиентов – величину (1000 + 1500 + 1000) /3 (табл. 3.26). Таблица 3.26. Результат выполнения запроса
Исключить повторяющиеся значения при подсчете среднего можно с помощью параметра DISTINCT.
Например, запросподсчитывает среднее только несовпадающих рейтингов – величину (1000 + + 1500) / 2; еще одно значение 1000, имеющееся в столбце rating, запросом игнорируется (табл. 3.27). Таблица 3.27. Результат выполнения запроса
Функцию AVG() можно использовать для отбора тех значений, которые больше среднего, или тех, которые меньше среднего.
Например, запросвыводит информацию о клиентах, чей рейтинг выше среднего (см. результат запроса в табл. 3.12). Вложенный запрос возвращает средний рейтинг клиента (см. табл. 3.26), а внешний – отбирает строки таблицы Customers, в которых значение столбца rating больше значения, возвращенного подзапросом. Отметим, что в данном случае вложенный запрос возвращает
Теперь мы рассмотрим функцию нахождения максимального значения столбца.
MAX()Данная функция возвращает максимальное значение в столбце. Если в запросе вы укажете какое-либо условие отбора, то максимальное значение выбирается из строк, удовлетворяющих условию отбора. Если запросом не найдено ни одной строки или все значения в столбце равны NULL, то функция возвращает значение NULL.
Например, запросвозвращает наибольший из рейтингов клиентов – 1500 (табл. 3.28). Таблица 3.28. Результат выполнения запроса
Функцию MAX() можно использовать для поиска строк, в которых достигается максимальное значение столбца.
Например, запросвыводит информацию о клиентах, чей рейтинг равен максимальному (см. результат запроса в табл. 3.12).
Далее мы рассмотрим функцию нахождения минимального значения столбца.
MIN()Данная функция возвращает минимальное значение в столбце. Если в запросе вы укажете какое-либо условие отбора, то минимальное значение выбирается из строк, удовлетворяющих условию отбора. Если запросом не найдено ни одной строки или все значения в столбце равны NULL, то функция возвращает значение NULL.
Например, запросвозвращает наименьший из рейтингов клиентов – 1000 (табл. 3.29). Таблица 3.29. Результат выполнения запроса
Функцию MIN() можно использовать для поиска строк, в которых достигается минимальное значение столбца.
Например, запросвыводит информацию о клиентах, чей рейтинг равен минимальному (см. результат запроса в табл. 3.11).
Далее мы рассмотрим функцию подсчета количества значений.
COUNT()Данная функция возвращает количество отличных от NULL значений, содержащихся в столбце. Если в запросе вы укажете какое-либо условие отбора, то в подсчете участвуют только строки, удовлетворяющие условию отбора. Если не найдено ни одного отличного от NULL значения, то функция возвращает значение 0.
Например, запросвозвращает количество отличных от NULL значений в столбце rating таблицы Customers (табл. 3.30). Таблица 3.30. Результат выполнения запроса
Параметр DISTINCT позволяет подсчитать количество различных (уникальных) значений в столбце (при этом неопределенные значения также игнорируются).
Например, запросподсчитывает количество различных значений рейтинга в таблице Customers (табл. 3.31). В таблице есть две строки с одинаковым рейтингом – 1000, поэтому результат подсчета будет меньше, чем в предыдущем запросе. Таблица 3.31. Результат выполнения запроса
Если в качестве аргумента функции COUNT() указать не имя столбца, а звездочку, то функция возвращает общее число строк, удовлетворяющих условию отбора, включая строки, содержащие неопределенные значения. Так, если столбец rating содержит неопределенные значения, то значение, выводимое запросомбудет больше, чем значение, выводимое запросом
(разность этих значений совпадает с количеством строк, в которых значение в столбце rating равно NULL).
Функцию COUNT() можно использовать для отбора тех строк родительской таблицы, с которыми связано заданное количество строк дочерней таблицы.
Например, запросвыводит список клиентов, сделавших не менее двух заказов (результат запроса см. в табл. 3.14). Для каждого клиента вложенный запрос выдает количество заказов этого клиента, и если это количество не меньше двух, то текущая запись о клиенте включается в результат, выводимый внешним запросом.
Рассмотрим функции вычисления среднеквадратичного отклонения.
Функции VAR_POP(), VARIANCE(), VAR_SAMP(), STDDEV_POP(), STD(), STDDEV() и STDDEV_SAMP()Функция VAR_POP() вычисляет
– среднее арифметическое значений столбца, то дисперсия равна
Например, запросвозвращает величину дисперсии рейтингов клиентов:
(табл. 3.32).
Таблица 3.32. Результат выполнения запросаФункция VARIANCE() является синонимом функции VAR_POP ().
Функция VAR_SAMP() возвращает величину
– среднее арифметическое значений столбца, то значение выборочной дисперсии равно
Например, запросвозвращает величину выборочной дисперсии рейтингов клиентов:
(табл. 3.33).
Таблица 3.33. Результат выполнения запросаФункция STDDEV_POP() вычисляет среднеквадратичное отклонение значений столбца, которое является квадратным корнем из дисперсии.
Например, запрос