Функция SQL AVG: вычисление среднего значения в запросах

Функция AVG в SQL позволяет быстро и легко вычислять среднее значение группы чисел. Это очень полезная функция для анализа данных и выявления тенденций.

1. Основы функции AVG в SQL

Рассмотрим базовый синтаксис SQL функции AVG:

SELECT AVG(column) FROM table;

Этот запрос вычислит среднее значение данных в указанном столбце table. Например, чтобы найти средний возраст всех клиентов:

SELECT AVG(age) AS average_age FROM customers;

Вечерняя пробка на перекрестке в большом городе

1.1. Синтаксис и особенности AVG

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

SELECT AVG(DISTINCT salary) FROM employees;

Это вычислит среднюю уникальную зарплату.

Также обратите внимание, что AVG игнорирует NULL значения. Поэтому если часть данных отсутствует, это не исказит результат.

1.2. Использование AVG в предложении SELECT

Функцию AVG можно комбинировать с другими функциями, например округлить результат:

SELECT ROUND(AVG(price), 2) AS average_price FROM products;

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

SELECT AVG(price * quantity) AS total_value FROM orders;

Это даст среднюю общую стоимость заказов.

Крупный план молодой улыбающейся девушки

1.3. AVG с группировкой в GROUP BY

Часто нужно вычислить отдельные средние значения для разных групп данных. Например, средний чек за месяц:

SELECT DATE_FORMAT(created_at, '%Y-%m') AS month, AVG(total) AS average_checkout FROM orders GROUP BY month

Здесь мы сгруппировали данные по месяцу с помощью GROUP BY и вычислили средний чек для каждого месяца.

2. Примеры использования AVG на практике

2.1. Анализ эффективности маркетинговых кампаний

Предположим, у нас есть данные о маркетинговых кампаниях компании за последний год в таблице campaigns:

id channel clicks orders
1 Email 1500 350
2 Facebook 8000 1024
3 Google Ads 12000 2048

Чтобы проанализировать эффективность, можно вычислить средние показатели CTR (Click-through rate) и конверсии для каждого канала:

SELECT channel, ROUND(AVG(clicks/orders), 2) AS ctr, ROUND(AVG(orders/clicks*100), 2) AS conv FROM campaigns GROUP BY channel;

Это позволит выявить самые эффективные каналы для привлечения клиентов.

2.2. Анализ успеваемости студентов университета

Рассмотрим применение SQL функции AVG для анализа успеваемости студентов. Имеется таблица grades с оценками:

2.3. Вычисление средней стоимости товаров интернет-магазина

Для интернет-магазинов важно отслеживать среднюю стоимость товаров по категориям. Это помогает оптимизировать ценообразование и ассортимент.

Например, имеется таблица products с полями:

  • id - уникальный идентификатор товара
  • name - название
  • category - категория (одежда, электроника, косметика и т.д.)
  • price - цена

Тогда запрос будет таким:

SELECT category, AVG(price) AS average_price FROM products GROUP BY category ORDER BY average_price DESC;

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

2.4. Выявление отклонений средних показателей

Очень полезно анализировать отклонения текущих данных от исторических средних значений. Это позволяет выявлять аномалии и нестандартные ситуации.

Например, имеются ежедневные метрики веб-сайта за последние 2 года:

  • visits - количество визитов
  • pageviews - просмотры страниц
  • revenue - выручка

Тогда можно вычислить исторические средние показатели:

SELECT AVG(visits) AS average_visits, AVG(pageviews) AS average_pageviews, AVG(revenue) AS average_revenue FROM metrics WHERE created >= '2020-01-01';

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

Статья закончилась. Вопросы остались?
Комментарии 0
Подписаться
Я хочу получать
Правила публикации
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.