SQL AVG
Вы работаете с данными, поэтому мы предполагаем, что в какой-то момент вашей карьеры вы будете вычислять средние значения некоторых метрик *машет руками в воздухе*. И способ вычисления средних значений числового столбца в SQL — это использование функции AVG.
Как использовать функцию AVG
Функция AVG является частью группы математических или агрегатных функций (например, MIN, MAX, SUM), которые часто используются в SQL для суммирования наборов данных. Вы, скорее всего, увидите использование функции AVG для простого вычисления среднего значения числового столбца, но также можете увидеть её использование в оконной функции для расчета скользящих средних.
Пример использования функции AVG
Следующий пример выполняет запрос из образца набора данных, созданного dbt Labs, под названием jaffle_shop:
select
date_trunc('month', order_date) as order_month,
round(avg(amount)) as avg_order_amount
from {{ ref('orders') }}
where status not in ('returned', 'return_pending')
group by 1
Этот запрос, использующий таблицу orders из Jaffle Shop, вернет округленную сумму заказа за каждый месяц заказа:
| Loading table... |
Функция AVG, как и многие другие математические функции, является агрегатной функцией. Агрегатные функции работают по всем строкам или группе строк, чтобы вернуть одно значение. При вычислении среднего значения столбца по измерению (или группе измерений) — в нашем примере выше, order_month — вам необходимо использовать оператор GROUP BY; без него запрос выше не будет успешно выполнен.
Синтаксис функции SQL AVG в Snowflake, Databricks, BigQuery и Redshift
Snowflake, Databricks, Google BigQuery и Amazon Redshift поддерживают возможность вычисления среднего значения столбца, и синтаксис для функций AVG одинаков на всех этих платформах данных.
Примеры использования функции AVG
Мы чаще всего видим использование функции AVG в работе с данными для расчёта:
- Средних значений ключевых метрик (например, Average CSAT, average lead time, average order amount) в downstream fact или dim моделях
- Скользящих или движущихся средних (например, 7‑day, 30‑day averages для ключевых метрик) с использованием оконных функций
- Средних значений в dbt metrics
Это не исчерпывающий список того, где ваша команда может использовать функцию AVG в ваших моделях dbt и логике BI-инструментов, но он содержит некоторые общие сценарии, с которыми аналитики сталкиваются в своей повседневной работе.