Лекция
Привет, Вы узнаете о том , что такое агрегатные функции, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое агрегатные функции, mysql group by, агрегация, группировка записей , настоятельно рекомендую прочитать все из категории MySql (Maria DB).
агрегация - это такая абстракция, которая превращает связь между объектами в некоторый агрегированный объект.
Агрегатная функция выполняет вычисление нескольких значений и возвращает одно значени то есть это функции вычисляющие результат по набору значений группы, либо всех записей БД
Например, вы можете использовать AVG()
агрегатную функцию, которая принимает несколько чисел и возвращает среднее значение чисел.
Ниже показан синтаксис агрегатной функции:
function_name(DISTINCT | ALL expression)
Язык кода: SQL (язык структурированных запросов) ( sql )
В этом синтаксисе:
AVG()
. См. Список агрегатных функций в следующем разделе.DISTINCT
если вы хотите вычислить на основе различных значений или ALL
если вы хотите вычислить все значения, включая дубликаты. По умолчанию это ALL
.
агрегатные функции часто используются с GROUP BY
предложением для вычисления агрегированного значения для каждой группы, например, среднего значения по группе или суммы значений в каждой группе.
группировка записей это конструкция GROUP BY в команде выборки позволяет разделить записи БД слоя на группы. Группировка записей может выполняться по значениям одного или нескольких полей записей, либо на основании значений столбцов таблицы результатов выборки.
Формат конструкции: GROUP BY <поля данных>|<номера столбцов>
. При задании названии полей данных группировка выполняется по полям данных таблицы, если же номера столбцов - то по номерам столбцов выводимой таблицы (нумерация столбцов начинается с 1).
В команде выборки конструкция GROUP BY размещается непосредственно после конструкции WHERE, перед HAVING и ORDER.
Группировка записей всегда используется совместно с агрегирующими функциями. В таком случае агрегирующие функции применяются отдельно к каждой группе записей. Например, при группировке записей слоя Здания
по полю Улица
, все записи БД слоя будут разбиты на несколько групп, в каждой группе записи с одинаковой улицей. И, при применении функции COUNT в таком запросе, будет выведено количество записей в каждой группе.
При использовании в запросе группировки, среди выводимых столбцов выборки могут задаваться агрегирующие функции, и поля записей по которым выполняется группировка, либо выражения включающие эти поля.
На следующем рисунке показано, что SUM()
агрегатная функция используется вместе с GROUP BY
предложением:
MySQL поддерживает следующие агрегатные функции:
Агрегатная функция | Описание |
---|---|
AVG() | Возвращает среднее значение, отличное от NULL. |
BIT_AND() | Вернуть побитовое И. |
BIT_OR ) | Вернуть побитовое ИЛИ. |
BIT_XOR () | Вернуть побитовое XOR. |
COUNT() | Возвращает количество строк в группе, включая строки со значениями NULL. |
GROUP_CONCAT() | Вернуть составную строку. |
JSON_ARRAYAGG() | Вернуть набор результатов в виде единого массива JSON. |
JSON_OBJECTAGG() | Вернуть набор результатов как один объект JSON. |
MAX() | Возвращает наивысшее значение (максимум) из набора значений, отличных от NULL. |
MIN() | Возвращает наименьшее значение (минимум) из набора значений, отличных от NULL. |
STDEV() | Возвратите стандартное отклонение генеральной совокупности. |
STDDEV_POP() | Возвратите стандартное отклонение генеральной совокупности. |
STDDEV_SAMP() | Верните стандартное отклонение выборки. |
SUM() | Возвращает сумму всех ненулевых значений набора. |
VAR_POP() | Верните стандартную дисперсию генеральной совокупности. |
VARP_SAM() | Верните образец дисперсии. |
VARIANCE() | Верните стандартную дисперсию генеральной совокупности. |
Мы будем использовать products
и orderdetails
таблицы из образца базы данных для демонстрации:
AVG()
примеры функцийAVG()
Функция вычисляет среднее значение из набора значений. Об этом говорит сайт https://intellect.icu . Он игнорирует NULL в вычислениях.
AVG(expression)
Язык кода: SQL (язык структурированных запросов) ( sql )
Например, вы можете использовать эту AVG
функцию для расчета средней цены покупки всех продуктов в products
таблице, используя следующий запрос:
SELECT AVG(buyPrice) average_buy_price FROM products;
Язык кода: SQL (язык структурированных запросов) ( sql )
В следующем примере AVG()
функция используется для расчета средней цены покупки для каждой линейки продуктов:
SELECT productLine, AVG(buyPrice) FROM products GROUP BY productLine ORDER BY productLine;
Язык кода: SQL (язык структурированных запросов) ( sql )
COUNT()
примеры функцийCOUNT()
Функция возвращает номер значения в наборе.
Например, вы можете использовать эту COUNT()
функцию, чтобы получить количество продуктов в products
таблице, как показано в следующем запросе:
SELECT COUNT(*) AS total FROM products;
Язык кода: PHP ( php )
Следующий оператор использует COUNT()
функцию с GROUP BY
предложением, чтобы получить количество продуктов для каждой линейки продуктов:
SELECT productLine, COUNT(*) FROM products GROUP BY productLine ORDER BY productLine;
Язык кода: SQL (язык структурированных запросов) ( sql )
SUM()
примеры функцийSUM()
Функция возвращает сумму значений в наборе. SUM()
Функция игнорирует NULL
. Если подходящей строки не найдено, SUM()
функция возвращает NULL.
Чтобы получить общую стоимость заказа каждого продукта, вы можете использовать SUM()
функцию вместе с GROUP BY
предложением следующим образом:
SELECT productCode, SUM(priceEach * quantityOrdered) total FROM orderDetails GROUP BY productCode ORDER BY total DESC;
Язык кода: SQL (язык структурированных запросов) ( sql )
Для того, чтобы увидеть результат более подробно, вы можете присоединиться к orderdetails
таблице в products
таблицу , как показано в следующем запросе:
SELECT productCode, productName, SUM(priceEach * quantityOrdered) total FROM orderDetails INNER JOIN products USING (productCode) GROUP BY productCode ORDER BY total;
Язык кода: SQL (язык структурированных запросов) ( sql )
MAX()
примеры функцийMAX()
Функция возвращает максимальное значение в наборе.
MAX(expression)
Язык кода: SQL (язык структурированных запросов) ( sql )
Например, вы можете использовать эту MAX()
функцию, чтобы получить самую высокую цену покупки из products
таблицы, как показано в следующем запросе:
SELECT MAX(buyPrice) highest_price FROM products;
Язык кода: SQL (язык структурированных запросов) ( sql )
В следующем заявлении используется MAX()
функция с GROUP BY
предложением для получения максимальной цены за линейку продуктов:
SELECT productLine, MAX(buyPrice) FROM products GROUP BY productLine ORDER BY MAX(buyPrice) DESC;
MIN()
примеры функцийMIN()
Функция возвращает минимальное значение в наборе значений.
MIN(expression)
Язык кода: SQL (язык структурированных запросов) ( sql )
Например, следующий запрос использует MIN()
функцию, чтобы найти самую низкую цену из products
таблицы:
SELECT MIN(buyPrice) lowest_price FROM products;
Язык кода: SQL (язык структурированных запросов) ( sql )
В следующем примере MIN()
функция с GROUP BY
предложением используется для получения наименьшей цены на линейку продуктов:
SELECT productLine, MIN(buyPrice) FROM products GROUP BY productLine ORDER BY MIN(buyPrice);
Язык кода: SQL (язык структурированных запросов) ( sql )
GROUP_CONCAT()
пример функцииGROUP_CONCAT()
Присоединяет набор строк и возвращает сцепленную строку. См. Следующие employees
и customers
таблицы:
Следующий оператор использует GROUP_CONCAT()
функцию для возврата торгового персонала и списка клиентов, за которые отвечает каждый торговый персонал:
SELECT firstName, lastName, GROUP_CONCAT( DISTINCT customername ORDER BY customerName) customers FROM employees INNER JOIN customers ON customers.salesRepEmployeeNumber = employeeNumber GROUP BY employeeNumber ORDER BY firstName , lastname;
Язык кода: SQL (язык структурированных запросов) ( sql )
На этой странице мы обсудили, как использовать функцию MySQL COUNT () с GROUP BY.
Пример:
Примерная таблица:
Код:
Пример вывода:
Иллюстрированное объяснение
Комментарии
Оставить комментарий
Базы данных - MySql (Maria DB)
Термины: Базы данных - MySql (Maria DB)