\
\" [] _ () "/
@velipre_xella
Всякое об SQL и ETL.
Телеграм @velipre_xella
44 posts
Postgresql

PostgreSQL. Формирование json и работа с ним.

В заметке приведён пример формирования json средствами sql в PostgreSQL и как можно делать выборки из полей типа json.

PostgreSQL. Реализация Lag ignore nulls.

В заметке приведён вариант реализации конструкции lag(my_val) ignore nulls для PostgreSQL.

Оконные функции. Разница между range и rows.

Будем считать нарастающий итог salary работников в порядке даты найма. Подготовим для начала CTE для таблицы emp таким образом.

IN, JOIN и EXISTS. Есть ли разница?!

Периодически встречаю такое поверье - логически эквивалентные запросы на одних и тех же данных будут физически по-разному выполняться движком СУБД. В зависимости от того, как записано условие - через in, join или exists.

PostgreSQL. Разработка баз данных. Учебник. Рецензия на книгу (книга дрянная).

Коллектив авторов аж из 6 человек сочинил это поделие объёмом 227 страниц. И выложил на litres. За 790 рублей(!).

PostgreSQL. Too many range table entries.

Недавно столкнулся с таким багом PostgreSQL. Жил себе да поживал в продакшне джоб Pentaho, в котором в том числе вызывается всякий pl/pgsql. И внезапно начал валиться с постгресовской ошибкой "too many range table entries". Версия PostgreSQL 13.7 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit.

PostgreSQL URL Encoding (PL/pythonu3).

Внезапно возникла задача формирования запросов к REST API из Pentaho DI. Есть несколько вариантов это сделать - степы REST Client в трансформации, Run SSH Commands, Execute a process.

PostgreSQL. Динамический SQL.

Такие задачи часто встречаются в реальной жизни, например, динамический PIVOT в t-sql, если число столбцов изначально неизвестно. В заметке речь именно про формирование и выполнение sql в коде, динамически формируемый код может быть сколько угодно сложным, это просто демонстрация такой возможности.

Запуск sql-скрипта в plsql в Windows(draft).

При чтении книг периодически нужно запускать файлы примеров, и я постоянно забываю, как это делать. Чтобы не гуглить: