Май 18 2011

Сравнение данных

SQL
no comments

Цель: Провести простое валидационное тестирование изменений в алгоритмах формирования данных. В наличие есть результат расчитанный на старом алгоритме и результат расчитанный на новом алгоритме. Ответ: В большенстве случаев достаточно выполнить код по следующему шаблону SELECT * FROM ( SELECT ‘OLD’ X, T.* FROM ( SELECT * FROM [СТАРЫЙ РЕЗУЛЬТАТ] MINUS SELECT * FROM [НОВЫЙ РЕЗУЛЬТАТ]…

Read the rest

Мар 16 2011

Генерация отчета на основании SQL запроса

Oracle, SQL
no comments

Мне потребовалась облегченая система по формированию отчетов и отправка их по электронной почте на основании известных SQL запросов. Время и ресурсы были ограничены. Я решил написать небольшой пакет по генерации отчетов. Обычно я не рекомендую создавать то, что уже реализовано в промышленных продуктах, так как это приводит к большим затратам разработки и поддержки. Но если…

Read the rest

Мар 04 2011

Пользовательские функции агрегации данных в SQL

Oracle, SQL
2 comments

User-Defined Aggregate Functions В SQL присутствует много функций, которые манипулируют блоком данных заданных группировкой и выдающие итоговый результат. В Oracle представлен следующий список функций: AVG, COLLECT, CORR, COUNT, COVAR_POP, COVAR_SAMP, CUME_DIST, DENSE_RANK, MAX, MEDIAN, MIN, PERCENTILE_CONT, PERCENTILE_DISC, PERCENT_RANK, RANK, REGR_ (Linear Regression) Functions, STATS_BINOMIAL_TEST, STATS_CROSSTAB, STATS_F_TEST, STATS_KS_TEST, STATS_MODE, STATS_MW_TEST, STATS_ONE_WAY_ANOVA, STATS_T_TEST_*, STATS_WSR_TEST, STDDEV, STDDEV_POP, STDDEV_SAMP,…

Read the rest

Мар 02 2011

Постановка по формированию потока платежей (Cash Flow)

SQL
no comments

Сегодня закончил оптимизацию формирования входных данных используемых KRM при формировании нестандартных потоков платежей. Ранее алгоритм был реализован на PLSQL с кучей временных таблиц, теперь это один SQL. Получен результат выполнения — 53 секунды вместо 37 минут (тот же объем данных и «железо»). Реализация выполнена для разовых кредитов, кредитных линий (по каждому траншу) и облигаций. Результаты…

Read the rest

Фев 14 2011

Получение последнего значимого значения в блоке

Oracle, SQL
2 comments

first non-null value in the set. Очень часто в запросах необходимо получить в указанном блоке последнее значимое значение. В SQL это делается просто. Описание задачи: Для каждой записи произвольной выборки T, необходимо для значения NULL в поле V вставить последнее NOT NULL значение из блока B упорядоченное по S, используя только один SQL с минимальными…

Read the rest

Янв 12 2011

Размножение строк в запросе SQL

Oracle, SQL
5 comments

Очень часто в запросах необходимо увеличить количество строк выборки на заданный множитель. В SQL это делается просто. Описание задачи: Каждую запись произвольной выборки T воспроизвести N раз (заданное количество) используя только один SQL с минимальными недостатками. Результат должен содержать полную входную строку и номер копии. Цель: Описать возможные варианты и предложить наилучший по критериям: понятность…

Read the rest