При создании аналитических дашбордов понадобилось агрегировать значения и сравнивать их значения по границам кварталов. Поиск границ кварталов решил созданием простого представлении к которому обращаюсь из запросов: CREATE OR REPLACE VIEW…
Есть массив значений, хранящихся в одной строке, например, через запятую. Задача: преобразовать эту строку значений в отдельные записи. Такие задачи на практике встречаются достаточно часто. Предлагаемые решения, как правило, основываются на использовании регулярных выражений и иерархических запросах. Но есть более нестандартный и быстрый способ получить из одного значения несколько строк.
(далее…)
Вопрос копирования данных BLOB через Database Link не является таким уж простым. К сожалению, в СУБД Oracle существуют существенные ограничения на работу с удаленной базой данных через внешнюю ссылку. Например, изменение значения данных типа LOB на удаленной БД не поддерживается. Выполнение следующих команд приведет к ошибке.
(далее…)
Постановка задачи: в некоей таблице имеется столбец с данными. Необходимо эти данные склеить в строку с помощью одного SQL-запроса. (далее…)
На протяжении всего времени работы с Oracle меня интересовал вопрос – почему при таком изобилии возможностей групповых вычислений и аналитических расчетов отсутствует такая простая и полезная функция как склейка строк группы записей в одну (т.е. агрегирование строк). В Oracle 11g Release 2 появилась функция listagg, позволяющая агрегировать строки группы в одну и работающая в двух режимах:
- групповка
- аналитическая функция
(далее…)
Очень часто при выборке данных появляется задача определения значения первой записи в заданной подгруппе для его дальнейшего использования, например, в качестве параметра. Или еще один распространенный случай: выбрать первую запись из отсортированной выборки. Эту задачу можно решить с помощью псевдостолбца ROWNUM, но тогда потребуется использование вложенного подзапроса, т.к. сначала необходимо выбираемые данные отсортировать. В таких случаях наиболее эффективным решением будет использование групповых функций FIRST и LAST.
(далее…)
В БД Oracle существует 4 операции с множествами выбранных данных: union - объединение множеств записей, полученных в результате двух выборок union all - добавление всех записей второй выборки к результату…