Перейти к содержимому

Spend-анализ на DuckDB: курс

Пять уроков, которые отвечают на пять вопросов spend-анализа. Каждый урок опирается на ту же базу, что и предыдущий, и добавляет один приём SQL. Идти по порядку не обязательно, но первые два шага — сборка и описание данных — нужны всем: без них запросы некуда запускать.

  • DuckDB версии 1.x в командной строке. Проверка: duckdb --version.
  • Терминал и любой редактор. Всё остальное лежит в репозитории портала, в папке scripts/practice-data/.
  • Никаких Python-библиотек, драйверов и серверов: DuckDB читает и пишет файл practice.duckdb прямо из командной строки.
Урок Вопрос Таблицы Приём
Сборка базы База собралась? все проверка строк и периода
Датасет Что означает строка? все зерно и связи таблиц
ABC Кто забирает бюджет? purchases оконная сумма, накопленная доля
XYZ Насколько ровно тратим? purchases коэффициент вариации
Концентрация От кого зависим? purchases, suppliers доля топ-5, индекс Херфиндаля
Экономия Сколько сэкономили? purchase_lines сравнение факта с базой
Время цикла Сколько ждём? purchases, bids перцентили, хвост

Сначала сборка, потом датасет. Второй урок читают до запросов, а не после: половина ошибок в аналитике закупок — это неверное представление о том, что лежит в строке.

Дальше уроки независимы. ABC и XYZ удобно проходить парой: они дают две координаты одной картинки. Концентрация опирается на ту же сумму заказов, но смотрит на поставщика, а не на категорию. Экономия и время цикла считаются по другим таблицам, и их можно проходить в любом порядке.

После каждого урока есть блок «Типичные ошибки». Если хотя бы одна строка из него про вас — вернитесь к запросу и поменяйте его так, чтобы ошибка стала видна в выводе. На этом и держится навык: не «я знаю формулу», а «я вижу, когда формула врёт».