В Oracle SQL есть замечательный класс аналитических функций. Генератор данных и задача Предположим, у нас есть некая последовательность значений. Генерируем ее с помощью иерархического запроса: select level as x
from dual
connect by level <= 5
;
1
2
3
4
5 Теперь мы хотели бы посчитать нарастающий итог, т.е. на каждой строке получить сумму всех предыдущих. Эта задача актуальна, например, для визуализации динамики суммарной выручки магазина за отчетный период по зафиксированным значениям дневной выручки...
Выполняя любую команду SQL, каждая СУБД старается выполнить её максимально эффективно. В каждой СУБД есть «оптимизатор», то есть механизм, принимающий решение как команда будет выполнена максимально эффективным образом. Строится план. Мы можем влиять на план выполнения запроса с помощью подсказок (хинтов), оставляя их прямо в SQL-коде. Если на одной из таблиц, участвующих в SQL-запросе есть индекс для какого-то столбца, значения которого используются во WHERE или в ON, то не обязательно, что он будет...