This media is not supported in your browser
VIEW IN TELEGRAM
Группируйте отсортированные строки в пакеты ограниченного размера (бин-пэкинг) в Oracle SQL с помощью:
Например, можно сгруппировать продажи по дате в пакеты так, чтобы суммарное значение в каждом пакете было ≤ X
👉 @SQLPortal
SELECT ... FROM ... MATCH_RECOGNIZE (
ORDER BY ...
MEASURES ...
PATTERN (total+)
DEFINE total AS SUM(...) <= ...
)
Например, можно сгруппировать продажи по дате в пакеты так, чтобы суммарное значение в каждом пакете было ≤ X
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Нашёл классную вещь — SQLCoder от Defog.ai
Это модель, которая переводит обычные вопросы в точные SQL-запросы
- Специализирован под SQL
- Открытый доступ (Hugging Face, ollama, transformers)
- Очень высокая точность на реальных задачах
👉 @SQLPortal
Это модель, которая переводит обычные вопросы в точные SQL-запросы
- Специализирован под SQL
- Открытый доступ (Hugging Face, ollama, transformers)
- Очень высокая точность на реальных задачах
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
В Oracle SQL можно проверить, получится ли привести выражение к нужному типу данных, с помощью функции
Она пытается преобразовать выражение в указанный тип
Если формат не указан, используется формат сеанса (настройки NLS)
Возвращает 1, если преобразование удалось, и 0, если нет
👉 @SQLPortal
VALIDATE_CONVERSION ( <expr> AS <datatype>, <fmt> )
Она пытается преобразовать выражение в указанный тип
Если формат не указан, используется формат сеанса (настройки NLS)
Возвращает 1, если преобразование удалось, и 0, если нет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Нашёл удобный сервис для быстрого запуска SQL-запросов онлайн — RunSQL
> Мгновенно пишешь и выполняешь SQL без установки ПО
> Поддержка PostgreSQL
> Можно быстро делиться своими запросами через ссылку
> Подходит для тестов, демонстраций и обучения
Просто открыл сайт — и сразу работаешь с базой. Минимализм и скорость
👍 — интересный проект
👉 @SQLPortal
> Мгновенно пишешь и выполняешь SQL без установки ПО
> Поддержка PostgreSQL
> Можно быстро делиться своими запросами через ссылку
> Подходит для тестов, демонстраций и обучения
Просто открыл сайт — и сразу работаешь с базой. Минимализм и скорость
👍 — интересный проект
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Группировать строки в последовательные 7-дневные блоки в Oracle SQL можно, округляя дату до начала недели:
А если нужны непоследовательные группы, начинающиеся с даты следующего события?
Тогда используйте сопоставление шаблонов (
👉 @SQLPortal
TRUNC(dt, 'iw')
А если нужны непоследовательные группы, начинающиеся с даты следующего события?
Тогда используйте сопоставление шаблонов (
MATCH_RECOGNIZE
):MATCH_RECOGNIZE (
...
PATTERN (init w7*)
DEFINE w7 AS dt < init.dt + 7
)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Недавно нашёл отличную книгу — "SQL Projects on Banking & Finance" от Dr. Eyo Eyo.
Это практическое пособие, где на реальных задачах из банковской и финансовой сферы учат писать SQL-запросы.
Внутри — 44 бизнес-сценария: от анализа транзакций и расчёта процентов по кредитам до поиска высокоценных клиентов
Рекомендую, если хотите перейти от "SELECT * FROM ..." к решению реальных бизнес-проблем👍
👉 @SQLPortal
Это практическое пособие, где на реальных задачах из банковской и финансовой сферы учат писать SQL-запросы.
Внутри — 44 бизнес-сценария: от анализа транзакций и расчёта процентов по кредитам до поиска высокоценных клиентов
Рекомендую, если хотите перейти от "SELECT * FROM ..." к решению реальных бизнес-проблем
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Хочешь удалить дубликаты строк в Oracle SQL?
Используй:
Укажи столбцы с дубликатами в выражении
Этот запрос сохраняет одну строку для каждого набора значений в списке и удаляет остальные
👉 @SQLPortal
Используй:
DELETE FROM ...
WHERE ROWID NOT IN (
SELECT MIN(ROWID)
FROM ...
GROUP BY col1, col2, ...
);
Укажи столбцы с дубликатами в выражении
GROUP BY
Этот запрос сохраняет одну строку для каждого набора значений в списке и удаляет остальные
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥2
Руководство для начинающих по блокировкам в базах данных и явлению потерянного обновления
📖 Читать: ссылка
👉 @SQLPortal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2
Пользователи Postgres любят CTE, потому что они делают сложные SQL-запросы более понятными, удобными для создания, редактирования и повторного использования
Простота – CTE позволяют разбить запрос на логические части, определяя подзапросы в начале. Это похоже на структуру книги с главами — каждая часть выполняет свою роль
Каждую часть CTE можно протестировать отдельно, как самостоятельный запрос. Это упрощает пошаговую сборку и отладку. Также можно временно отключать части CTE, комментируя их
Один и тот же CTE можно использовать несколько раз в одном запросе, не дублируя логику. Это экономит время и делает код чище👍
👉 @SQLPortal
Простота – CTE позволяют разбить запрос на логические части, определяя подзапросы в начале. Это похоже на структуру книги с главами — каждая часть выполняет свою роль
Каждую часть CTE можно протестировать отдельно, как самостоятельный запрос. Это упрощает пошаговую сборку и отладку. Также можно временно отключать части CTE, комментируя их
Один и тот же CTE можно использовать несколько раз в одном запросе, не дублируя логику. Это экономит время и делает код чище
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤3
Сбросьте последовательность Oracle к минимальному значению (или максимальному, если она убывает) с помощью:
Если нужно задать конкретное значение для следующего числа, добавьте START WITH, например:
👉 @SQLPortal
ALTER SEQUENCE ... RESTART
Если нужно задать конкретное значение для следующего числа, добавьте START WITH, например:
ALTER SEQUENCE ... RESTART START WITH 42
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Хочешь узнать, что происходит, когда ты отправляешь SQL в базу данных Oracle?
Поиграйся с ORASIM от Gilson Martins — это интерактивный инструмент, который показывает, как процессы базы данных взаимодействуют с её файлами для чтения и записи данных
👍 — имба
👉 @SQLPortal
Поиграйся с ORASIM от Gilson Martins — это интерактивный инструмент, который показывает, как процессы базы данных взаимодействуют с её файлами для чтения и записи данных
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Совет по PostgreSQL:
Если у вас есть результат из 3 столбцов, PostgreSQL может преобразовать его в сводную таблицу с помощью команды
Для более сложных наборов данных используйте функцию
👍 — лайк
👉 @SQLPortal
\crosstabview
Если у вас есть результат из 3 столбцов, PostgreSQL может преобразовать его в сводную таблицу с помощью команды
\crosstabview
(в psql).Для более сложных наборов данных используйте функцию
crosstab()
из расширения tablefunc
— она требует более точной настройки с помощью SQL-запросовPlease open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥1
PostgreSQL Anonymizer 2.1 — теперь с размытием изображений
Команда PostgreSQL выпустила обновление расширения Anonymizer до версии 2.1, и теперь оно умеет не только маскировать текстовые данные, но и размывать изображения прямо в базе данных
Это полезно для защиты таких данных, как фото профилей, сканы документов, QR-коды и др. Вместо удаления — просто размытие:
Поддерживаются все стратегии маскирования: динамическое, статическое, анонимные дампы и др.
Доступно для установки через Docker, Ansible, RPM/DEB и работает на многих DBaaS.
Идеальный инструмент для тех, кто работает с прод-данными в тестах и не хочет нарушать приватность.
📎 Подробнее: postgresql.org/news/postgresql-anonymizer-21-blurring-images-3061
👉 @SQLPortal
Команда PostgreSQL выпустила обновление расширения Anonymizer до версии 2.1, и теперь оно умеет не только маскировать текстовые данные, но и размывать изображения прямо в базе данных
Это полезно для защиты таких данных, как фото профилей, сканы документов, QR-коды и др. Вместо удаления — просто размытие:
SECURITY LABEL FOR anon ON COLUMN user.photo
IS 'MASKED WITH FUNCTION anon.image_blur(photo, 5.0)';
Поддерживаются все стратегии маскирования: динамическое, статическое, анонимные дампы и др.
Доступно для установки через Docker, Ansible, RPM/DEB и работает на многих DBaaS.
Идеальный инструмент для тех, кто работает с прод-данными в тестах и не хочет нарушать приватность.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2
Ключевое слово
В Oracle Database также можно создавать локальные функции, например:
Полезно для форматирования строк или другой логики, используемой в запросе
👉 @SQLPortal
WITH
позволяет создавать именованные подзапросы.В Oracle Database также можно создавать локальные функции, например:
WITH FUNCTION fn
RETURN ... IS BEGIN ... RETURN ...; END;
SELECT fn FROM ...
WHERE fn = ...
Полезно для форматирования строк или другой логики, используемой в запросе
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Ты можешь форматировать даты прямо в PostgreSQL во время выборки!
С помощью функции💖
👉 @SQLPortal
С помощью функции
to_char
можно задать любой нужный формат для даты или временной метки — она даёт очень гибкие возможности форматирования Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤4