Чему вы научитесь
Весь SQL в одной программе: от первого SELECT до рамок окна
Два курса, которые писались как одна дорога. Первый берёт вас с абсолютного нуля и доводит до порога оконных функций. Второй продолжает ровно с того места, где закончил первый. В программе они стоят дешевле, чем по отдельности.
Учебная база у обеих частей одна и та же, поэтому предметную область вы изучаете один раз, а дальше занимаетесь только SQL.
395 задач с автопроверкой | 87 уроков | 19 модулей | 969 шагов теории и практики |
Из чего состоит программа
|
ЧАСТЬ 1
База SQL
SQL в MySQL: от нуля до оконных функций
11 модулей · 42 урока · 222 задачи
SELECT и WHERE, встроенные функции, NULL и трёхзначная логика, агрегаты с GROUP BY и HAVING, все виды JOIN, подзапросы и EXISTS, CASE, CTE, сложная аналитика.
|
ЧАСТЬ 2
Оконные функции
До уверенного владения
8 модулей · 45 уроков · 173 задачи
ROW_NUMBER, RANK, DENSE_RANK, NTILE · агрегаты через OVER · LAG и LEAD · рамки ROWS и RANGE · CUME_DIST и процентили. |
Одна задача, два уровня владения
«Посчитай нарастающий итог платежей по каждому полису». К концу первой части вы решите это так:
SELECT p.policy_id, p.amount,
(SELECT SUM(p2.amount) FROM policy_payments p2
WHERE p2.policy_id = p.policy_id
AND p2.pay_date <= p.pay_date) AS running_total
FROM policy_payments p;
К концу второй части, вот так:
SELECT policy_id, amount, SUM(amount) OVER (PARTITION BY policy_id ORDER BY pay_date) AS running_total FROM policy_payments;
Программа устроена так, что сначала вы научитесь решать задачу трудным способом и поймёте, почему он трудный. Только после этого приходят оконные функции. Тогда они запоминаются как инструмент, а не как заклинание.
Как растёт сложность
| Первые запросы | часть 1 | |
| Функции и NULL | часть 1 | |
| Агрегаты и GROUP BY | часть 1 | |
| JOIN и подзапросы | часть 1 | |
| CASE, CTE, аналитика | часть 1 | |
| Мост к оконным | стык частей | |
| Ранжирование | часть 2 | |
| Агрегаты и смещение | часть 2 | |
| Рамки и процентили | часть 2 | |
| Финальный проект | часть 2 |
От «что такое таблица» до сквозного аналитического отчёта, где в одном запросе живут несколько окон, CTE и JOIN.
Одна база данных на обе части
Все 395 задач решаются на данных банка «Надёжный»: девять связанных таблиц вокруг центральной, policies.
- customers, кто купил полис
- insurance_products, что купил
- branches и employees, где оформил и кто оформил
- policy_payments, как платил
- claims, были ли страховые случаи
- renewals и policy_status_history, продления и история статусов
Программа целиком
- Введение, что такое база данных, таблица, ключи
- SELECT и WHERE, первые запросы, фильтры, LIKE, ORDER BY, LIMIT
- Функции и выражения, строковые, числовые, даты
- NULL, пустота, которая имеет значение
- Агрегаты и GROUP BY, итоги, группировки, HAVING
- JOIN, INNER, LEFT, RIGHT и SELF
- Подзапросы, скалярные, IN, EXISTS, коррелированные
- CASE WHEN, условная логика и пивот-таблицы
- CTE, читаемые запросы через WITH ... AS
- Сложная аналитика, отчёты, ранжирование и нарастающие итоги вручную
- Мост к оконным функциям, те же задачи двумя способами
- Датасет, та же банковская база, теперь взглядом аналитика
- Введение, чем
OVER()отличается отGROUP BY, синтаксис окна,PARTITION BY - Ранжирование,
ROW_NUMBER,RANK,DENSE_RANK,NTILE. Топ-N по группам, дедупликация, квартили - Агрегатные окна, нарастающие итоги, доля от общего, скользящие средние
- Функции смещения,
LAG,LEAD,FIRST_VALUE,LAST_VALUE. Сравнение периодов и дельты - Рамки окна,
ROWS BETWEENиRANGE BETWEEN, точный контроль диапазона - Продвинутые техники,
CUME_DIST,PERCENT_RANK, окна внутри CTE, ABC-анализ - Финальный проект, сквозной аналитический отчёт, как в реальной работе