MySQL функция AVG
MySQL функция AVG возвращает среднее значение выражения.
Синтаксис
Синтаксис MySQL функции AVG:
SELECT AVG(aggregate_expression)
FROM tables
[WHERE conditions];
ИЛИ Синтаксис MySQL функции AVG при группировке результатов по одному или нескольким столбцам:
SELECT expression1, expression2, . expression_n,
AVG(aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, . expression_n;
Параметры или аргументы
expression1 , expression2 , . expression_n — выражения, которые не инкапсулированы в функции AVG и должны быть включены в предложение GROUP BY в конце SQL предложения.
aggregate_expression — это столбец или выражение, для вычисления среднего значения.
tables — таблицы, из которых вы хотите получить записи. Должна быть хотя бы одна таблица, указанная в предложении FROM.
WHERE conditions — необязательный. Это условия, которые должны быть выполнены для выбранных записей.
Применение
Функция AVG может использоваться в следующих версиях MySQL:
- MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0, MySQL 3.23
Пример с одним выражением
Например, вы можете узнать, какая средняя зарплата всех сотрудников, чья зарплата превышает 12 000 долларов в год.
Как посчитать среднее значение в sql
Блог веб разработки статьи | видеообзоры | исходный код

Group by sql

Всем привет в данной статье мы с вами рассмотрим предложение GROUP BY для чего оно служит и как им пользоваться.
Таблица которую мы будем использовать
id tovar summa ======================================================== 1 tovar1 1000 2 tovar2 10000 3 tovar3 3000 4 tovar4 1000 5 tovar5 3000 6 tovar6 3500 =========================================================
И давайте сразу рассмотрим запрос с использованием GROUP BY, допустим мы хотим посчитать количество товаров на каждую из ценовых категорий:
SELECT `summa`, COUNT(`summa`) AS count FROM `tovar` GROUP BY `summa`
Результатом нам вернулось
summa count 1000 2 3000 2 3500 1 10000 1
мы получили, то что хотели! Давайте подробнее разберем наш запрос.
В первой части запроса мы указали что нам нужно поле summa и количество строк которому мы присвоили псевдоним count, то есть количество строк у нас будет доставаться через поле count. Во второй части запроса мы указали GROUP BY (группировать строки) , и указали поле summa.
Что тут следует учитывать!
SELECT `summa`,`tovar`, COUNT(`summa`) AS count FROM `tovar` GROUP BY `summa`
summa tovar count 1000 tovar1 2 3000 tovar3 2 3500 tovar6 1 10000 tovar2 1
этот запрос хоть и вернет нам значение, но он будет не коректен, так как поле tovar не указано в нашей группировке полей GROUP BY и следовательно на каждую группу суммы у нас вернется, только одно значение поля tovar учитываю, то что значения поля tovar в нашей таблице не повторяются. Но мы можем записать наш запрос так:
SELECT `summa`,`tovar`, COUNT(`summa`) AS count FROM `tovar` GROUP BY `summa`,`tovar`
summa tovar count 1000 tovar1 1 1000 tovar4 1 3000 tovar3 1 3000 tovar5 1 3500 tovar6 1 10000 tovar2 1
Как видите теперь группировка полей произошла у нас по полю `tovar`, потому что оно указанно последним аргументом предложения GROUP BY. Отсюда можно сделать простой вывод ,в качестве аргумента группировки строк нужно указывать одно поле.
К примеру на ничто не мешает посчитать общую сумму, количество, среднее значение и т.п .
Рассмотрим следующий запрос:
SELECT `summa`, COUNT(`summa`) AS count,SUM(`summa`) AS sum,AVG(`summa`) AS avg FROM `tovar` GROUP BY `summa`
В результате мы получили количество, общую сумму и среднее значение у каждой ценовой категории.
Вот и все дорогие друзья что я вам хотел рассказать о группировке строк в SQL.
Надеюсь вам было интересно и вы смогли узнать что то новое.
Оцените статью:
Статьи
- gitignore GIT
- Переменные окружения PHP
- CSS шрифты
- Ветки GIT
- CSS перенос слов
- CSS counter-increment
- MediaRecorder
- zipfile python
- Linux команды
Комментарии
Внимание. Комментарий теперь перед публикацией проходит модерацию
Все комментарии отправлены на модерацию
© 2017-2024 webfanat.com Все права защищены.

Запись экрана
Данное расширение позволяет записывать экран и выводит видео в формате webm
Добавить приложение на рабочий стол
Как сделать среднее арифметическое в SQL — запросе?
Как зделать среднее арефметическое `stud`.`E1`, `stud`.`E2`, `stud`.`E3` и по строчкам, как сейчас, и по столбцах, чтобы получилось одно число?
SELECT `stud`.`Name`
FROM `stud`
WHERE EXISTS(SELECT NumS
FROM `rob_gurt`
WHERE
((`stud`.`NumS` = `rob_gurt`.`NumS`) AND (`rob_gurt`.`NumG` = 1) AND ( `stud`.`E1` (`stud`.`E1` + `stud`.`E2` + `stud`.`E3`)/3) )
)
- Вопрос задан более трёх лет назад
- 2220 просмотров
Комментировать
Решения вопроса 1
Prosghvatn @Prosghvatn Автор вопроса
SELECT `stud`.`Name`
FROM `stud`
INNER JOIN
(SELECT AVG(`stud`.`E1` + `stud`.`E2` + `stud`.`E3`) / 3 AS average
FROM `stud`
INNER JOIN `rob_gurt`
ON `rob_gurt`.`NumS` = `stud`.`NumS`
INNER JOIN `gurt`
ON `gurt`.`NumG` = `rob_gurt`.`NumG`
WHERE `gurt`.`NameG` = «Музыкальный») AS q
ON `stud`.`E1`
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 1

Вижу тяжело у вас сессия проходит. AVG() в помощь.
Ответ написан более трёх лет назад
Нравится 2 4 комментария

AVG по столбцу находит, а тут как я погляжу нужно для 3х столбцов одной строки
Prosghvatn @Prosghvatn Автор вопроса
Андрей Николаев: Нет, надо и 3х столбцов и строки, и с теми фильтрами что там есть
Prosghvatn @Prosghvatn Автор вопроса
Разбиратся достаточно сложно

Prosghvatn: Да, ребята. Сессия это вам не сиськи мять. Тяжело в учении — легко в бою!
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- MySQL
- +2 ещё
Как при удачной авторизации изменить кнопку Log In на кнопку Log Out и скрыть кнопку от обычных пользователей?
- 1 подписчик
- 10 часов назад
- 31 просмотр
Функция Avg
Вычисляет среднее арифметическое набора значений, содержащихся в определенном поле запроса.
Синтаксис
Avg ( выражение )
Аргумент выражение представляет собой строковое выражение, определяющее поле с числовыми данными, для которых требуется найти среднее арифметическое, или выражение, с помощью которого производится расчет. Операндом в выражении может быть имя таблицы, константа или функция (встроенная или определяемая пользователем, но не другая агрегатная функция SQL).
Примечания
Значение, полученное с помощью функции Avg, является средним арифметическим (суммой значений, деленной на их количество). Например, вы можете использовать функцию Avg, чтобы подсчитать среднюю стоимость доставки.
Функция Avg не учитывает поля со значением Null.
Avg можно использовать в выражении запроса и в свойстве SQL объекта QueryDef или при создании набор записей на основе SQL запроса.
Примеры
SELECT Avg([UnitPrice]) AS Expr1 FROM ProductSales;
Возвращает среднее значение всех значений поля «Цена» из таблицы «ProductSales» и отображает его в столбце «Вырасть1».
SELECT Avg([SalePrice]) AS AvgSalePrice, Avg([Discount]) AS AvgDiscount FROM ProductSales;
Возвращает среднее значение полей «ЦенаПродажи» и «Скидка» из таблицы ProductSales. Результаты отображаются в столбце «AvgSalePrice» и «AvgDiscount» соответственно, возвращая среднее значение всех продаж «SalePrice», где проданное «Количество» больше 10. Результаты отображаются в столбце «AvgSalePrice».
SELECT Abs(Avg([Discount])) AS AbsAverageDiscount FROM ProductSales;
Возвращает абсолютную величину среднего значения поля Discount и отображает в столбце «AbsAverageDiscount».