Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

агрегатные функции MySQL и Group by кратко

Лекция



Привет, Вы узнаете о том , что такое агрегатные функции, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое агрегатные функции, 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 в таком запросе, будет выведено количество записей в каждой группе.

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

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

На следующем рисунке показано, что SUM()агрегатная функция используется вместе с GROUP BYпредложением:

агрегатные функции MySQL и 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() Верните стандартную дисперсию генеральной совокупности.

Примеры агрегатных функций MySQL

Мы будем использовать productsи orderdetailsтаблицы из образца базы данных для демонстрации:

агрегатные функции MySQL и Group by

Агрегатная функция MySQL - AVG()примеры функций

AVG()Функция вычисляет среднее значение из набора значений. Об этом говорит сайт https://intellect.icu . Он игнорирует NULL в вычислениях.


 
AVG(expression)

Язык кода: SQL (язык структурированных запросов) ( sql )

Например, вы можете использовать эту AVGфункцию для расчета средней цены покупки всех продуктов в productsтаблице, используя следующий запрос:


 
SELECT AVG(buyPrice) average_buy_price FROM products;

Язык кода: SQL (язык структурированных запросов) ( sql )

агрегатные функции MySQL и Group by

В следующем примере AVG()функция используется для расчета средней цены покупки для каждой линейки продуктов:


 
SELECT productLine, AVG(buyPrice) FROM products GROUP BY productLine ORDER BY productLine;

Язык кода: SQL (язык структурированных запросов) ( sql )

агрегатные функции MySQL и Group by

Агрегатная функция MySQL - COUNT()примеры функций

COUNT()Функция возвращает номер значения в наборе.

Например, вы можете использовать эту COUNT()функцию, чтобы получить количество продуктов в productsтаблице, как показано в следующем запросе:


 
SELECT COUNT(*) AS total FROM products;

Язык кода: PHP ( php )

агрегатные функции MySQL и Group by

Следующий оператор использует COUNT()функцию с GROUP BYпредложением, чтобы получить количество продуктов для каждой линейки продуктов:


 
SELECT productLine, COUNT(*) FROM products GROUP BY productLine ORDER BY productLine;

Язык кода: SQL (язык структурированных запросов) ( sql )

агрегатные функции MySQL и Group by

Агрегатная функция MySQL - 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 )

агрегатные функции MySQL и Group by

Для того, чтобы увидеть результат более подробно, вы можете присоединиться к orderdetailsтаблице в productsтаблицу , как показано в следующем запросе:


 
SELECT productCode, productName, SUM(priceEach * quantityOrdered) total FROM orderDetails INNER JOIN products USING (productCode) GROUP BY productCode ORDER BY total;

Язык кода: SQL (язык структурированных запросов) ( sql )

агрегатные функции MySQL и Group by

Агрегатная функция MySQL - MAX()примеры функций

MAX()Функция возвращает максимальное значение в наборе.


 
MAX(expression)

Язык кода: SQL (язык структурированных запросов) ( sql )

Например, вы можете использовать эту MAX()функцию, чтобы получить самую высокую цену покупки из productsтаблицы, как показано в следующем запросе:


 
SELECT MAX(buyPrice) highest_price FROM products;

Язык кода: SQL (язык структурированных запросов) ( sql )

агрегатные функции MySQL и Group by

В следующем заявлении используется MAX()функция с GROUP BYпредложением для получения максимальной цены за линейку продуктов:


 
SELECT productLine, MAX(buyPrice) FROM products GROUP BY productLine ORDER BY MAX(buyPrice) DESC;

Язык кода: SQL (язык структурированных запросов) ( sql )

агрегатные функции MySQL и Group by

Агрегатная функция MySQL - MIN()примеры функций

MIN()Функция возвращает минимальное значение в наборе значений.


 
MIN(expression)

Язык кода: SQL (язык структурированных запросов) ( sql )

Например, следующий запрос использует MIN()функцию, чтобы найти самую низкую цену из productsтаблицы:


 
SELECT MIN(buyPrice) lowest_price FROM products;

Язык кода: SQL (язык структурированных запросов) ( sql )

агрегатные функции MySQL и Group by

В следующем примере MIN()функция с GROUP BYпредложением используется для получения наименьшей цены на линейку продуктов:


 
SELECT productLine, MIN(buyPrice) FROM products GROUP BY productLine ORDER BY MIN(buyPrice);

Язык кода: SQL (язык структурированных запросов) ( sql )

агрегатные функции MySQL и Group by

Агрегатная функция MySQL - GROUP_CONCAT()пример функции

GROUP_CONCAT()Присоединяет набор строк и возвращает сцепленную строку. См. Следующие employeesи customersтаблицы:

агрегатные функции MySQL и Group by

Следующий оператор использует 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 и Group by

COUNT() функция с GROUP BY

На этой странице мы обсудили, как использовать функцию MySQL COUNT () с GROUP BY.

Пример:

Следующая инструкция MySQL покажет количество авторов для каждой страны. Предложение GROUP BY группирует все записи для каждой страны, а затем функция COUNT () вместе с GROUP BY подсчитывает количество авторов для каждой страны.

Примерная таблица:

агрегатные функции MySQL и Group by

Код:

SELECT country,COUNT(*)
FROM author      
GROUP BY country;

Копировать

Пример вывода:

 агрегатные функции MySQL и Group by

Иллюстрированное объяснение

агрегатные функции MySQL и Group by

Вау!! 😲 Ты еще не читал? Это зря!

Исследование, описанное в статье про агрегатные функции, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое агрегатные функции, mysql group by, агрегация, группировка записей и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории MySql (Maria DB)

создано: 2021-06-30
обновлено: 2021-06-30
132265



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

MySql (Maria DB)

Термины: MySql (Maria DB)