MODEL в Oracle SQL. Введение
Оператор MODEL превращает SQL в табличный вычислитель, позволяя:
Задавать правила расчёта на уровне ячеек, строк, колонок
Прогнозировать значения
Работать с псевдомассивами и индексами
Выполнять итерационные вычисления
Если вы когда-либо думали «хотел бы я в SQL задать правила расчёта как в Excel» — MODEL создан для этого.
🔤 Написание
🔄 Где часто используется
Финансовые и прогнозные расчёты
Применение бизнес-правил к данным
Заполнение недостающих значений
Расчёт новых колонок с условиями и итерациями
Моделирование логики, невозможной с обычными
CASE,JOIN,CTE
🧪 10 Примеров использования MODEL с пояснениями
1️⃣ Простое вычисление нового столбца
Создаёт строку с ключом 'TOTAL', где будет сумма sal по отделу.
2️⃣ Расчёт нового значения по формуле
Расчёт прогноза: +10% к текущим продажам на востоке.
3️⃣ Работа с несколькими строками
Прогноз для месяца 13: +5% к декабрю.
4️⃣ Генерация новых строк (по индексам)
Генерируем последовательность от 1 до 10.
5️⃣ Множественные вычисления
Вычисляем бонус и прибавляем его к зарплате.
6️⃣ Итерационные расчёты с условием
Геометрическая прогрессия: ×2 до тех пор, пока не превысим 1000.
7️⃣ Переименование и форматирование измерений
Увеличиваем значение на 15%.
8️⃣ Суммирование по измерению
Добавляем строку с общими продажами.
9️⃣ Работа с текстом
Присваиваем текстовую категорию.
🔟 Расчёт с историей и условием
Добавляем по 50 за каждый шаг времени.
🧩 Заключение
Оператор MODEL в Oracle SQL — это прорывной способ описания логики вычислений. Он особенно полезен, когда вам нужно сформировать динамическую таблицу, построить прогноз или расчёт по формулам, прямо в SQL без внешних скриптов.
💡 Основы:
PARTITION BY— аналогGROUP BYDIMENSION BY— ось строки/колонки (индексы)MEASURES— что будем вычислятьRULES— сами расчётыИспользуйте
ITERATEдля циклов и прогнозов