120 ключевых вопросов по SQL за 2025 год
Статья содержит 120 ключевых вопросов по SQL для собеседований, разделённых по темам и уровням сложности, с краткими пояснениями.
Основываясь на актуальных требованиях 2025 года, вопросы охватывают базу данных, оптимизацию, практические задачи и нюансы СУБД (MySQL, PostgreSQL, SQL Server).
🔜 Подробности
Статья содержит 120 ключевых вопросов по SQL для собеседований, разделённых по темам и уровням сложности, с краткими пояснениями.
Основываясь на актуальных требованиях 2025 года, вопросы охватывают базу данных, оптимизацию, практические задачи и нюансы СУБД (MySQL, PostgreSQL, SQL Server).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤5🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Частая задача в аналитике — найти записи, где, например, один и тот же email встречается с разными user_id или IP. Это может быть индикатором мультиаккаунта, спама или ошибок.
-- Найдём email-адреса, у которых более одного уникального user_id
SELECT email
FROM users
GROUP BY email
HAVING COUNT(DISTINCT user_id) > 1;
-- Если нужно вытащить сами строки — можно использовать подзапрос
SELECT *
FROM users
WHERE email IN (
SELECT email
FROM users
GROUP BY email
HAVING COUNT(DISTINCT user_id) > 1
);
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍6❤1🥰1
🧩 Анатомия SQL‑запроса: как он устроен на самом деле
SQL выглядит просто, но за каждой строчкой — строгая логика и порядок выполнения. Вот из чего состоит любой запрос:
🧱 Компоненты:
-
- Идентификаторы — названия таблиц и колонок.
- Литералы — значения:
- Выражения —
⚙️ Порядок выполнения СУБД (не как в коде!):
1.
2.
3.
4.
5.
6.
7.
📌 То есть сначала СУБД соединяет таблицы, потом фильтрует, группирует, считает, сортирует и только потом возвращает результат.
🧠 SQL — декларативный язык. Ты описываешь, что хочешь получить, а не как это сделать.
🔗 Полная статья
SQL выглядит просто, но за каждой строчкой — строгая логика и порядок выполнения. Вот из чего состоит любой запрос:
🧱 Компоненты:
-
SELECT
, FROM
, WHERE
, JOIN
, GROUP BY
, HAVING
, ORDER BY
, LIMIT
— это клаузы, блоки, из которых строится запрос.- Идентификаторы — названия таблиц и колонок.
- Литералы — значения:
'USA'
, 100
, '2025-01-01'
.- Выражения —
salary * 1.2
, age > 30
.⚙️ Порядок выполнения СУБД (не как в коде!):
1.
FROM
и JOIN
2.
WHERE
3.
GROUP BY
4.
HAVING
5.
SELECT
6.
ORDER BY
7.
LIMIT
📌 То есть сначала СУБД соединяет таблицы, потом фильтрует, группирует, считает, сортирует и только потом возвращает результат.
🧠 SQL — декларативный язык. Ты описываешь, что хочешь получить, а не как это сделать.
🔗 Полная статья
👍15❤5🔥2😁2🤨1💊1
Forwarded from Python/ django
Transfunctions — это инструмент для создания чистых, переиспользуемых и управляемых пайплайнов из функций. Подходит для задач, где нужно чётко контролировать каждый шаг выполнения.
Что такое транзакционные функции?
Это функции, которые:
• имеют чёткое начало и откат (rollback) — как в базах данных
• могут быть объединены в цепочки, где каждая часть знает, как отменить свои действия
• обрабатывают ошибки и контекст централизованно
• позволяют писать бизнес-логику без дублирования и хаоса
Что умеет Transfunctions:
• Объединение функций в контролируемые пайплайны
• Поддержка отката и логирования
• Контекстное выполнение (например, сессии, транзакции, данные)
• Минимум шаблонного кода
Подходит для ETL, финансовых операций, инфраструктурных обработчиков и сценариев с проверками и откатами.
pip install transfunctions
🔗 GitHub: https://github.com/pomponchik/transfunctions
#python #pipeline #transactions #opensource #architecture
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3❤2
🚀 УСКОРЕНИЕ ТРАНЗАКЦИЙ В SQL ЧЕРЕЗ BATCHING !
Ускоряй SQL-транзакции с помощью batched inserts/updates и минимизации количества round‑trip'ов
Одна из главных причин медленных транзакций — множество отдельных запросов. Каждый INSERT или UPDATE — это отдельная поездка в базу (round-trip), которая стоит времени и ресурсов.
Решение: объединяй операции в батчи, используй
Пример:
📌 Преимущества:
– Меньше сетевых вызовов
– Лучше используется план выполнения
– Меньше блокировок и нагрузка на транзакционный лог
Ускоряй SQL-транзакции с помощью batched inserts/updates и минимизации количества round‑trip'ов
Одна из главных причин медленных транзакций — множество отдельных запросов. Каждый INSERT или UPDATE — это отдельная поездка в базу (round-trip), которая стоит времени и ресурсов.
Решение: объединяй операции в батчи, используй
VALUES (...), (...), (...)
или CASE WHEN
для обновлений.Пример:
-- Вместо этого (медленно):
INSERT INTO logs (user_id, action) VALUES (1, 'login');
INSERT INTO logs (user_id, action) VALUES (2, 'logout');
INSERT INTO logs (user_id, action) VALUES (3, 'login');
-- Делай так (быстрее):
INSERT INTO logs (user_id, action)
VALUES
(1, 'login'),
(2, 'logout'),
(3, 'login');
-- Аналогично для обновлений:
UPDATE accounts
SET balance = CASE user_id
WHEN 1 THEN 100
WHEN 2 THEN 200
WHEN 3 THEN 300
END
WHERE user_id IN (1, 2, 3);
📌 Преимущества:
– Меньше сетевых вызовов
– Лучше используется план выполнения
– Меньше блокировок и нагрузка на транзакционный лог
👍15🔥4❤2
🧠 Условие:
Есть таблица
orders
:| id | customer_id | total |
|----|-------------|--------|
| 1 | A | 100.00 |
| 2 | A | 200.00 |
| 3 | B | 150.00 |
| 4 | B | 300.00 |
| 5 | C | 400.00 |
Нужно выбрать заказ с максимальной суммой (`total`) для каждого клиента.
Вы пишете:
SELECT customer_id, MAX(total)
FROM orders
GROUP BY customer_id;
✅ Работает? Да. Но теперь вы хотите вернуть всю строку заказа с максимальной суммой — включая id.
Вы пишете:
SELECT *
FROM orders
GROUP BY customer_id
HAVING total = MAX(total);
❌ Ошибка. Или — неожиданные результаты.
📌 Подвох: нельзя использовать HAVING total = MAX(total) без подзапроса.
MAX — агрегат, а total вне GROUP BY — это ошибка или неопределённость.
✅ Правильное решение — с подзапросом:
SELECT o.*
FROM orders o
JOIN (
SELECT customer_id, MAX(total) AS max_total
FROM orders
GROUP BY customer_id
) t ON o.customer_id = t.customer_id AND o.total = t.max_total;
💡 Такое решение:
🧠 Вывод:
Нельзя просто так использовать MAX() и при этом возвращать столбцы вне GROUP BY.
Для этого всегда нужен JOIN с агрегатом или window-функции.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1🔥1
E-CUP возвращается. Реальные данные. Масштабные проекты. Большие призы
Решайте ML-задачи в стиле Ozon Tech и узнайте, как работают ML-инженеры в e-com бигтехе. Девять победителей разделят призовой фонд — 7 200 000 рублей 🔥
🗓 Регистрация: https://cnrlink.com/ecup25databases
💻 Формат участия: онлайн
👥 Команда: от 1 до 5 человек
🎯 Для кого: Data Scientists, ML-специалисты, аналитики данных, дата-инженеры, специалисты Big Data и разработчики, которые интересуются ML/DS.
Что вас ждёт:
🔹 Работа над проектом для миллионов пользователей на основе данных от ведущего e-com в России.
🔹 Обмен опытом с экспертами Ozon Tech.
🔹 Питчинг — 13 сентября на конференции E-CODE. Ozon Tech предоставит финалистам билеты и оплатит поездку.
Каждый трек E-CUP — реальная e-com задача, как в настоящей продуктовой ML-команде.
1️⃣ Рекомендации: предсказание следующей покупки пользователя
2️⃣ Логистика: автопланирование курьеров
3️⃣ Контроль качества: автоматическое выявление поддельных товаров
Регистрация открыта до 17 августа: https://cnrlink.com/ecup25databases
Решайте ML-задачи в стиле Ozon Tech и узнайте, как работают ML-инженеры в e-com бигтехе. Девять победителей разделят призовой фонд — 7 200 000 рублей 🔥
Что вас ждёт:
🔹 Работа над проектом для миллионов пользователей на основе данных от ведущего e-com в России.
🔹 Обмен опытом с экспертами Ozon Tech.
🔹 Питчинг — 13 сентября на конференции E-CODE. Ozon Tech предоставит финалистам билеты и оплатит поездку.
Каждый трек E-CUP — реальная e-com задача, как в настоящей продуктовой ML-команде.
Регистрация открыта до 17 августа: https://cnrlink.com/ecup25databases
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Внутри — 4 модуля, разбитые по сложности:
📌 Ссылка тут: https://mode.com/sql-tutorial
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍2🥰1
🔐 Postgresus - self-hosted инструмент для резервного копирования и мониторинга PostgreSQL базы данных, написанный на Go
🔥 Возможности:
- создание бекапов по расписанию для PostgreSQL 13-17;
- уведомления в Telegram, Slack, Discord, если бекап сломался или база недоступна;
- хранение бекапов локально, в S3 или Google Drive;
- health check базы данных раз в минуту.
Запуск через Docker:
📌 GitHub
🔥 Возможности:
- создание бекапов по расписанию для PostgreSQL 13-17;
- уведомления в Telegram, Slack, Discord, если бекап сломался или база недоступна;
- хранение бекапов локально, в S3 или Google Drive;
- health check базы данных раз в минуту.
Запуск через Docker:
docker run -d \
--name postgresus \
-p 4005:4005 \
-v ./postgresus-data:/postgresus-data \
--restart unless-stopped \
rostislavdugin/postgresus:latest
📌 GitHub
🔥4👍2🥰1
📘 OpenAI выпустила GPT-5 Prompting Guide — руководство по созданию эффективных промтов
Что внутри:
- 🛠 Agentic workflows — как настраивать автономность модели и управлять глубиной размышлений (`reasoning_effort`).
- 📋 Tool preambles — структура работы с инструментами: цель, план, комментарии, итог.
- ⚡ Responses API — альтернатива Chat Completions для экономии токенов и улучшения качества.
- 💻 Кодинг — советы по интеграции в Next.js, React, Tailwind и оптимизации стиля кода.
- 🎯 Steering & verbosity — контроль длины и стиля ответа, избегание конфликтующих инструкций.
- 🚀 Minimal reasoning mode — быстрые задачи с чётким планом и приоритетами.
- 🔄 Метапромтинг — использование GPT-5 для улучшения собственных промтов.
Кому полезно:
Разработчикам агентных систем, AI-ассистентов и всем, кто хочет выжать максимум из GPT-5.
🔗 Полный гайд и примеры
#GPT5 #PromptEngineering #OpenAI #AI
Что внутри:
- 🛠 Agentic workflows — как настраивать автономность модели и управлять глубиной размышлений (`reasoning_effort`).
- 📋 Tool preambles — структура работы с инструментами: цель, план, комментарии, итог.
- ⚡ Responses API — альтернатива Chat Completions для экономии токенов и улучшения качества.
- 💻 Кодинг — советы по интеграции в Next.js, React, Tailwind и оптимизации стиля кода.
- 🎯 Steering & verbosity — контроль длины и стиля ответа, избегание конфликтующих инструкций.
- 🚀 Minimal reasoning mode — быстрые задачи с чётким планом и приоритетами.
- 🔄 Метапромтинг — использование GPT-5 для улучшения собственных промтов.
Кому полезно:
Разработчикам агентных систем, AI-ассистентов и всем, кто хочет выжать максимум из GPT-5.
🔗 Полный гайд и примеры
#GPT5 #PromptEngineering #OpenAI #AI
❤6👍2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🗓️ SQL-трюк: как быстро найти "дыры" в данных по датам
В аналитике часто нужно понять, за какие дни нет записей — например, продаж или логов.
Вместо сложных процедур можно сгенерировать календарь через
https://www.youtube.com/shorts/CAkHyUx6iiU
#SQL #Postgres #DataAnalytics #generate_series
В аналитике часто нужно понять, за какие дни нет записей — например, продаж или логов.
Вместо сложных процедур можно сгенерировать календарь через
generate_series()
(Postgres) и сделать LEFT JOIN
к данным. Так вы мгновенно выявите пропуски и сможете строить непрерывные временные ряды.
-- Дни без заказов за последние 30 дней
WITH calendar AS (
SELECT generate_series(
current_date - interval '30 days',
current_date,
interval '1 day'
)::date AS day
),
orders_per_day AS (
SELECT
order_ts::date AS day,
COUNT(*) AS orders_count
FROM sales
WHERE order_ts >= current_date - interval '30 days'
GROUP BY order_ts::date
)
SELECT
c.day,
COALESCE(o.orders_count, 0) AS orders_count
FROM calendar c
LEFT JOIN orders_per_day o USING(day)
WHERE o.orders_count IS NULL
ORDER BY c.day;
https://www.youtube.com/shorts/CAkHyUx6iiU
#SQL #Postgres #DataAnalytics #generate_series
👍13❤8🔥4
🔍 DVC — Git для данных и ML-моделей. Этот инструмент делает для данных то же, что Git для кода — позволяет отслеживать изменения, переключаться между версиями и работать в команде без хаоса.
DVC не загружает тяжелые файлы в Git-репозиторий, а хранит их в облаке или локально, записывая только метаданные. Особенно удобна интеграция с ML-пайплайнами: можно настраивать зависимости между этапами обработки данных и обучения, а он будет перезапускать только изменившиеся части. При этом инструмент отлично дополняет MLflow: первый управляет версиями данных, второй — трекит эксперименты.
🤖 GitHub
DVC не загружает тяжелые файлы в Git-репозиторий, а хранит их в облаке или локально, записывая только метаданные. Особенно удобна интеграция с ML-пайплайнами: можно настраивать зависимости между этапами обработки данных и обучения, а он будет перезапускать только изменившиеся части. При этом инструмент отлично дополняет MLflow: первый управляет версиями данных, второй — трекит эксперименты.
🤖 GitHub
👍5❤2🔥1
ЦОДы внедряют долговременные архивы
📍 ЭЛАР представил сегмент долговременного хранения для ЦОД — роботизированные электронные архивы на оптике ЭЛАРобот НСМ
Система построена на оптических носителях:
— хранят информацию свыше 50 лет
— устойчивы к внешним воздействиям и энергоэффективны
— не нуждаются в обновлении и миграции данных
— обеспечивают 100% защиту от перезаписи и удаления
— удешевляют хранение информации, разгружая “горячие” массивы HDD/SSD
📉 ЭЛАРобот НСМ исключает расходы на обслуживание и легко интегрируется в любую ИТ-инфраструктуру.
📦 Модели для ЦОД основаны на роботизированных библиотеках ёмкостью до 1036 ТБ, которые позволяют записывать и долговременно хранить любые критически важных данные:
— документы
— базы данных
— бэкапы и другую информацию.
👉 Подробнее о технологии и преимуществах хранения на оптике
📍 ЭЛАР представил сегмент долговременного хранения для ЦОД — роботизированные электронные архивы на оптике ЭЛАРобот НСМ
Система построена на оптических носителях:
— хранят информацию свыше 50 лет
— устойчивы к внешним воздействиям и энергоэффективны
— не нуждаются в обновлении и миграции данных
— обеспечивают 100% защиту от перезаписи и удаления
— удешевляют хранение информации, разгружая “горячие” массивы HDD/SSD
📉 ЭЛАРобот НСМ исключает расходы на обслуживание и легко интегрируется в любую ИТ-инфраструктуру.
📦 Модели для ЦОД основаны на роботизированных библиотеках ёмкостью до 1036 ТБ, которые позволяют записывать и долговременно хранить любые критически важных данные:
— документы
— базы данных
— бэкапы и другую информацию.
👉 Подробнее о технологии и преимуществах хранения на оптике
Таблицы:
• items(item_id NUMBER, init_qty NUMBER) — стартовый остаток по товару
• movements(item_id NUMBER, ts DATE, qty NUMBER) — движения: приход (qty>0) и расход (qty<0), событий может быть несколько в день
Нужно:
1) Построить помесячный/подневный календарь по каждому item_id между мин(ts) и max(ts).
2) Посчитать ежедневный итоговый остаток (onhand), применяя суммарные дневные движения к старту, даже если в конкретный день не было событий.
3) Найти «окна нулевого остатка» (stockout): количество, самую длинную протяжённость и дату первого пополнения после самого длинного окна.
4) Спрогнозировать риск обнуления в ближайшие 14 дней при текущем тренде: взять 7-дневное скользящее среднее спроса (по расходам), спроецировать остаток и отметить товары, которые уйдут в ноль.
-- Демоданные
WITH items AS (
SELECT 101 item_id, 50 init_qty FROM dual UNION ALL
SELECT 102, 5 FROM dual
),
movements_raw AS (
SELECT 101 item_id, DATE'2025-08-01' ts, 30 qty FROM dual UNION ALL -- приход
SELECT 101, DATE'2025-08-02', -20 FROM dual UNION ALL -- расход
SELECT 101, DATE'2025-08-04', -40 FROM dual UNION ALL -- перерасход → stockout
SELECT 101, DATE'2025-08-06', 60 FROM dual UNION ALL -- пополнение
SELECT 102, DATE'2025-08-01', - 2 FROM dual UNION ALL
SELECT 102, DATE'2025-08-03', - 3 FROM dual UNION ALL
SELECT 102, DATE'2025-08-05', 5 FROM dual
),
-- 1) Свернём движения по дням (может быть несколько событий в день)
movements AS (
SELECT item_id, ts, SUM(qty) qty_per_day
FROM movements_raw
GROUP BY item_id, ts
),
-- 1) Календарь на ежедневной сетке для каждого товара
date_bounds AS (
SELECT item_id,
LEAST(MIN(ts), TRUNC(SYSDATE)) AS dmin,
GREATEST(MAX(ts), TRUNC(SYSDATE)) AS dmax
FROM movements
GROUP BY item_id
),
calendar AS (
SELECT b.item_id, (b.dmin + LEVEL - 1) d
FROM date_bounds b
CONNECT BY LEVEL <= b.dmax - b.dmin + 1
AND PRIOR item_id = item_id
AND PRIOR SYS_GUID() IS NOT NULL
),
-- 2) Посчитаем ежедневный остаток MODEL-ом
onhand AS (
SELECT item_id, d, onhand, qty_per_day
FROM (
SELECT c.item_id,
c.d,
NVL(m.qty_per_day, 0) qty_per_day,
i.init_qty
FROM calendar c
JOIN items i USING(item_id)
LEFT JOIN movements m ON m.item_id = c.item_id AND m.ts = c.d
)
MODEL
PARTITION BY (item_id)
DIMENSION BY (d)
MEASURES (init_qty, qty_per_day, CAST(NULL AS NUMBER) AS onhand)
RULES SEQUENTIAL ORDER (
onhand[MIN(d)] = init_qty[MIN(d)] + qty_per_day[MIN(d)],
onhand[FOR d FROM MIN(d)+1 TO MAX(d)] =
onhand[CV(d)-1] + qty_per_day[CV(d)]
)
),
-- 3) Найдём окна нулевого остатка и их длины
stockout_runs AS (
SELECT *
FROM onhand
MATCH_RECOGNIZE (
PARTITION BY item_id
ORDER BY d
MEASURES
FIRST(d) AS start_d,
LAST(d) AS end_d,
COUNT(*) AS days_zero
ONE ROW PER MATCH
PATTERN (z+)
DEFINE
z AS onhand = 0
)
),
-- 3) Для самого длинного окна найдём дату первого пополнения после него
longest_zero AS (
SELECT s.item_id, s.start_d, s.end_d, s.days_zero,
LEAD(s.end_d) OVER (PARTITION BY s.item_id ORDER BY s.days_zero, s.end_d) dummy
FROM (
SELECT s.*, ROW_NUMBER() OVER (PARTITION BY item_id ORDER BY days_zero DESC, end_d) rn
FROM stock
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🔥2
Forwarded from Machinelearning
Модель показывает лучшие результаты в своём классе среди открытых решений, лидируя на 41 бенчмарке.
- Image Reasoning — понимание изображений, анализ нескольких изображений, распознавание объектов.
- Video Understanding — раскадровка длинных видео, определение событий, которые происходят на кадрах из видео.
- GUI-задачи — понимание интрефейсов, распознавание иконок, кнопок и тд, помощь в управлении рабочим столом.
- Сложный анализ графиков и документов — разбор различных отчётов, извлечение информации их них.
- Grounding — точная локализация элементов на изображениях.
Здесь можно почитать про GLM-4.5, а здесь посмотреть техрепорт, там много интересного.
@ai_machinelearning_big_data
#GLM #opensource #vlm
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1🔥1
GitHub: gigagrug/schema
Что умеет:
-
schema -i
— инициализация проекта (по умолчанию SQLite + `./schema/dev.db`) или подключение к выбранной БД -
schema -pull
— импорт существующей структуры - Миграции:
- создание SQL-файлов
- применение (`schema -migrate`)
- выборочное выполнение (`schema -migrate="имя"`)
- Миграции с данными для повторного использования
- Выполнение произвольных SQL прямо в консоли
- Встроенная TUI-студия для интерактивной работы с БД
- Быстрые и наглядные миграции
- Поддержка нескольких СУБД
- Легкое подключение к существующей базе
- Совмещает миграции, генерацию данных и интерактивный интерфейс
📌 Apache-2.0 • ⭐ 22 звезды • 8 релизов • последний — 2 августа 2025
Если нужен удобный CLI для миграций и работы с базами — Schema точно стоит внимания.
👉 Github
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1🔥1
Разбираем тестовое задание в Яндекс на позицию Junior аналитика данных
Тестовое задание — важная часть трудоустройства аналитика. Это шанс показать свои навыки на практике и получить оффер мечты.
Приглашаем на бесплатный вебинар, где Андрон Алексанян — эксперт в области аналитики и CEO школы аналитики Simulative — в прямом эфире разберет тестовое задание в Яндекс на позицию Junior аналитика данных.
⚡️ На вебинаре вы:
Чему именно научимся на вебинаре:
🕗 Настоятельно рекомендуем не пропускать — для зрителей у нас есть особый бонус, который обеспечит вам уверенный старт в вашей карьере.
😶 Зарегистрироваться на бесплатный вебинар
Тестовое задание — важная часть трудоустройства аналитика. Это шанс показать свои навыки на практике и получить оффер мечты.
Приглашаем на бесплатный вебинар, где Андрон Алексанян — эксперт в области аналитики и CEO школы аналитики Simulative — в прямом эфире разберет тестовое задание в Яндекс на позицию Junior аналитика данных.
🟠 узнаете, какие навыки и знания необходимы для успешного выполнения заданий;🟠 поймёте, что хочет увидеть работодатель;🟠 получите советы и лайфхаки;🟠 вместе с Андроном разберете в прямом эфире реальный пример тестового 🔥
Чему именно научимся на вебинаре:
🟠 С помощью Pandas проанализируем Яндекс-запросы за несколько недель, загрузив их из json-файла;🟠 Найдем закономерности и отличия использования сервиса на мобильных устройствах и компьютерах;🟠 Разберем фишки Pandas: сложную агрегацию, маппинг, конкатенацию, чейнинг и др.
🕗 Настоятельно рекомендуем не пропускать — для зрителей у нас есть особый бонус, который обеспечит вам уверенный старт в вашей карьере.
Please open Telegram to view this post
VIEW IN TELEGRAM
🐘 Tarantool — необычная платформа, сочетающая in-memory базу данных с полноценным сервером приложений на Lua. Проект имеет два движка хранения: in-memory с WAL и LSM-дерево, поддерживает ANSI SQL и асинхронную репликацию.
Инструмент имеет встроенный JIT-компилятор LuaJIT, позволяющий исполнять бизнес-логику прямо рядом с данными. При этом сохраняется совместимость с внешними СУБД вроде PostgreSQL через коннекторы. Проект полезен для высоконагруженных веб-сервисов, кэширующих слоёв и систем обработки очередей сообщений.
🤖 GitHub
@databases_tg
Инструмент имеет встроенный JIT-компилятор LuaJIT, позволяющий исполнять бизнес-логику прямо рядом с данными. При этом сохраняется совместимость с внешними СУБД вроде PostgreSQL через коннекторы. Проект полезен для высоконагруженных веб-сервисов, кэширующих слоёв и систем обработки очередей сообщений.
🤖 GitHub
@databases_tg
❤2👍2🔥2
🚀 Интересуетесь нейросетями и хотите понять, как эволюция архитектур RNN и Transformer влияет на NLP?🚀
На открытом уроке «От RNN до Transformers: скорость, память, контекст» 19 августа в 20:00 МСК мы разберём, как работают рекуррентные нейросети (RNN), их ограничения и почему современные NLP-системы всё чаще переходят к трансформерам. Мы сравним эти архитектуры по ключевым параметрам: скорости, памяти, контексту и масштабируемости.
Урок даст вам чёткое представление о том, как меняются подходы в обработке текста, а также объяснит, почему трансформеры становятся основой современных NLP-систем.
📚 Посетите вебинар и получите скидку на большое обучение «NLP / Natural Language Processing»: https://otus.pw/QKft/?erid=2W5zFK8ZKSY
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
На открытом уроке «От RNN до Transformers: скорость, память, контекст» 19 августа в 20:00 МСК мы разберём, как работают рекуррентные нейросети (RNN), их ограничения и почему современные NLP-системы всё чаще переходят к трансформерам. Мы сравним эти архитектуры по ключевым параметрам: скорости, памяти, контексту и масштабируемости.
Урок даст вам чёткое представление о том, как меняются подходы в обработке текста, а также объяснит, почему трансформеры становятся основой современных NLP-систем.
📚 Посетите вебинар и получите скидку на большое обучение «NLP / Natural Language Processing»: https://otus.pw/QKft/?erid=2W5zFK8ZKSY
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
❤1🤨1
💡 Полезный хинт для Oracle SQL — ускоряем поиск по последним записям с
Вместо подзапросов для поиска последнего или первого значения по группе можно использовать аналитическую агрегацию с
📍 Пример: для каждой акции получить последнюю цену
📍 Первый тик за день:
⚡ Плюсы:
- Нет лишних джоинов и подзапросов
- Работает прямо в GROUP BY
- Удобно для задач «последнее значение по группе»
KEEP (DENSE_RANK ...)
Вместо подзапросов для поиска последнего или первого значения по группе можно использовать аналитическую агрегацию с
KEEP (DENSE_RANK ...)
. Это делает код короче и часто быстрее.📍 Пример: для каждой акции получить последнюю цену
select symbol,
max(price) keep (dense_rank last order by ts) as last_price,
max(ts) as last_ts
from trades
group by symbol;
📍 Первый тик за день:
select trunc(ts) as trade_day,
symbol,
min(price) keep (dense_rank first order by ts) as first_price
from trades
group by trunc(ts), symbol;
⚡ Плюсы:
- Нет лишних джоинов и подзапросов
- Работает прямо в GROUP BY
- Удобно для задач «последнее значение по группе»
👍3❤1🤨1