Классический SQL не допускает межстрочного взаимодействия; аналитические функции это ограничение снимают; конструкция model дает еще большую свободу действий. Возникла задача вида $z = 1;
for ($i = 0; $i < 10; $i++) {
$z = $z * $z + 1;
} Т.е. необходимо обращаться к предыдущему значению переменной z; возникло желание записать на SQL. "На языке"-то просто, но это 3-й уровень абстракции, а как на SQL, который является 4-м уровнем абстракции и специфицирует не действия, как 3-й, а желаемые результаты? Вообще говоря, это вопрос философский. Сначала человек думает: "Я хочу примерно этого" - и махом формирует алгоритм, (c) Лев Толстой: Die erste Kolonne marschiert, die zweite Kolonne marschiert... "Первая колонна марширует, вторая колонна марширует...", а SQL-то требует совсем другого: Ты скажи, ты скажи,
Чо те надо, чо надо,
Может, дам я тебе чо ты хошь... Такова изначальная диспозиция: 3-й уровень определяет действия, 4-й уровень оперирует понятием желаемого результата. А потом началось.