Найти в Дзене
Информатика

Одна функция — миллионы рублей. Как SQL считает деньги за тебя

Когда стриминг подбирает тебе плейлист под настроение — где-то в базе данных выполняется запрос. Он считает, сколько раз ты переслушал трек, вычисляет среднее время прослушивания, находит пользователей с похожим поведением. Всё это — агрегатные функции. Несколько строк SQL, и алгоритм «знает» тебя лучше, чем ты думаешь. Представь: у маркетплейса миллион заказов в базе. Каждый — отдельная строка. Без агрегации это просто шум. Но стоит добавить одну функцию — и шум превращается в сигнал: SELECT SUM(amount) AS total_revenue
FROM orders; Один запрос. Одна цифра. Вся выручка компании. Именно так финдиректор стартапа в 9 утра открывает дашборд и видит, что вчера бизнес заработал или потерял. Не таблички — контроль над реальностью. В основе большинства аналитических систем — от TikTok до банковских антифродов — лежат всего пять функций: COUNT — сколько всего. Сколько пользователей зашло в приложение сегодня? Сколько матчей сыграно за сутки? SUM — сколько в сумме. Общая выручка, суммарный траф
Оглавление
рекомендации и агрегирование поведения
рекомендации и агрегирование поведения

Spotify знает, что ты слушаешь в 2 часа ночи. И это не магия

Когда стриминг подбирает тебе плейлист под настроение — где-то в базе данных выполняется запрос. Он считает, сколько раз ты переслушал трек, вычисляет среднее время прослушивания, находит пользователей с похожим поведением. Всё это — агрегатные функции. Несколько строк SQL, и алгоритм «знает» тебя лучше, чем ты думаешь.

От строк к смыслу

одна функция как источник финансового сигнала
одна функция как источник финансового сигнала

Представь: у маркетплейса миллион заказов в базе. Каждый — отдельная строка. Без агрегации это просто шум. Но стоит добавить одну функцию — и шум превращается в сигнал:

SELECT SUM(amount) AS total_revenue
FROM orders;

Один запрос. Одна цифра. Вся выручка компании.

Именно так финдиректор стартапа в 9 утра открывает дашборд и видит, что вчера бизнес заработал или потерял. Не таблички — контроль над реальностью.

Пять функций, которые стоят за любой аналитикой

COUNT, SUM, AVG, MIN, MAX основа аналитики
COUNT, SUM, AVG, MIN, MAX основа аналитики

В основе большинства аналитических систем — от TikTok до банковских антифродов — лежат всего пять функций:

COUNT — сколько всего. Сколько пользователей зашло в приложение сегодня? Сколько матчей сыграно за сутки?

SUM — сколько в сумме. Общая выручка, суммарный трафик, объём транзакций.

AVG — каково среднее. Средний чек, среднее время сессии, средний рейтинг трека.

MIN / MAX — крайние значения. Самая дорогая покупка. Самый быстрый матч. Первая и последняя дата активности.

Это не «базовые команды для новичков». Это язык, на котором бизнес разговаривает с данными.

Один нюанс, который путает всех

Есть деталь, которую пропускают — и потом получают неверные цифры в отчёте.

COUNT(*) считает все строки, даже пустые.
COUNT(столбец) — только те, где значение
реально существует.

-- 1000 заказов в таблице
SELECT COUNT(*) FROM orders; -- результат: 1000

-- но менеджер назначен только у 780
SELECT COUNT(manager_id) FROM orders; -- результат: 780

Если не понимать разницу — можно отчитаться перед инвестором цифрой на 22% больше реальной. Неловко.

NULL — тихий саботажник

отсутствие данных и COALESCE
отсутствие данных и COALESCE

NULL в базе данных — это не ноль и не пустая строка. Это отсутствие информации. И агрегатные функции его молча игнорируют.

AVG(amount) посчитает среднее только по заполненным строкам. Строки с NULL просто выпадут из расчёта — без предупреждений, без ошибок.

Хочешь учитывать их как ноль? Один приём:

SELECT AVG(COALESCE(amount, 0)) FROM orders;

COALESCE говорит: «если NULL — подставь ноль». Маленькая деталь, которая меняет результат аналитики.

Один запрос = сводка для CEO

агрегированная сводка и контроль
агрегированная сводка и контроль

Не нужно делать пять отдельных запросов. Всё сразу:

SELECT
COUNT(*) AS total_orders,
SUM(amount) AS revenue,
ROUND(AVG(amount), 2) AS avg_check,
MIN(amount) AS min_order,
MAX(amount) AS max_order
FROM orders;

Такой запрос висит в основе каждого бизнес-дашборда. За красивыми графиками в Notion, Tableau или внутренней аналитике стартапа — именно это.

Почему это важно прямо сейчас

ИИ-модели обучаются на данных, которые кто-то агрегировал и почистил. Рекомендательные алгоритмы работают с метриками, которые кто-то посчитал. Антифрод в банке срабатывает на аномалиях, которые кто-то научился находить через AVG и MAX.

SQL — это не про таблички. Это про то, кто управляет информацией.

А информация сегодня — это и есть деньги, влияние и продукты, которыми пользуются миллионы.

🔥 Хочешь копнуть глубже? Полный учебный материал с детальными примерами, схемами и крутыми иллюстрациями ждёт тебя на нашем сайте!