По всем вопросам- @haarrp
@itchannels_telegram - 🔥лучшие ит-каналы
@ai_machinelearning_big_data - Machine learning
@pythonl - Python
@pythonlbooks- python книги📚
@datascienceiot - ml книги📚
Информация о канале обновлена 20.08.2025.
По всем вопросам- @haarrp
@itchannels_telegram - 🔥лучшие ит-каналы
@ai_machinelearning_big_data - Machine learning
@pythonl - Python
@pythonlbooks- python книги📚
@datascienceiot - ml книги📚
Проект имеет два движка хранения: in-memory с WAL и LSM-дерево, поддерживает ANSI SQL и асинхронную репликацию.
Инструмент имеет встроенный JIT-компилятор LuaJIT, позволяющий исполнять бизнес-логику прямо рядом с данными. При этом сохраняется совместимость с внешними СУБД вроде PostgreSQL через коннекторы. Проект полезен для высоконагруженных веб-сервисов, кэширующих слоёв и систем обработки очередей сообщений.
🤖 GitHub
@sqlhub
💡 Полезный хинт для Oracle SQL — использование TRUNC
с датами для фильтрации и агрегации
В Oracle функция `TRUNC(date, 'fmt')` обрезает дату до заданного формата, обнуляя менее значимые части (часы, минуты, секунды и т.д.). Это помогает:
- фильтровать данные по дням, месяцам, годам, неделям, кварталам,
- делать группировки без сложных выражений,
- избавляться от ошибок, когда время мешает сравнению дат.
📌 Форматы:
- 'DD'
— начало дня (по умолчанию)
- 'MM'
— первый день месяца
- 'YYYY'
— первый день года
- 'IW'
— начало ISO-недели
- 'Q'
— первый день квартала
📍 Примеры:
- Все сделки за сегодня
select *
from trades
where trunc(ts) = trunc(sysdate);
- Группировка по месяцам
select trunc(ts, 'MM') as month_start, sum(price) as total
from trades
group by trunc(ts, 'MM')
order by month_start;
-- Данные за текущий квартал
select *
from trades
where trunc(ts, 'Q') = trunc(sysdate, 'Q');
- Удобно в чтении и написании
- Убирает проблемы с «лишними» часами и минутами в датах
- Работает напрямую с типом DATE без лишних кастов
@sqlhub
Тестовое задание — важная часть трудоустройства аналитика. Это шанс показать свои навыки на практике и получить оффер мечты.
Приглашаем на бесплатный вебинар, где Андрон Алексанян — эксперт в области аналитики и CEO школы аналитики Simulative — в прямом эфире разберет тестовое задание в Яндекс на позицию Junior аналитика данных.
⚡️На вебинаре вы:
🟠узнаете, какие навыки и знания необходимы для успешного выполнения заданий;
🟠поймёте, что хочет увидеть работодатель;
🟠получите советы и лайфхаки;
🟠вместе с Андроном разберете в прямом эфире реальный пример тестового 🔥
🟠С помощью Pandas проанализируем Яндекс-запросы за несколько недель, загрузив их из json-файла;
🟠Найдем закономерности и отличия использования сервиса на мобильных устройствах и компьютерах;
🟠Разберем фишки Pandas: сложную агрегацию, маппинг, конкатенацию, чейнинг и др.
— для зрителей у нас есть особый бонус, который обеспечит вам уверенный старт в вашей карьере.
😶Зарегистрироваться на бесплатный вебинар
🧩 Продвинутая задача по SQL (Oracle): найти «бычьи серии» продаж и момент разворота
Задача
Есть таблица продаж по дням:
sales(day_date DATE, customer_id NUMBER, amount NUMBER)
Нужно для каждого клиента найти интервалы из не меньше 3 подряд идущих дней, где сумма amount
строго возрастает каждый день, а на следующий день после интервала происходит разворот вниз (т.е. amount
меньше, чем в последний день серии). Для каждого такого интервала вернуть:
- customer_id
- start_date, end_date серии
- length (длина серии в днях)
- last_amount (сумма в последний день серии)
- drop_amount (сумма в день разворота)
- drop_pct (процент падения относительно last_amount)
Решение (Oracle 12c+): используем MATCH_RECOGNIZE
SELECT *
FROM sales
MATCH_RECOGNIZE (
PARTITION BY customer_id
ORDER BY day_date
MEASURES
FIRST(day_date) AS start_date,
LAST(day_date) AS end_date,
COUNT(A.*) AS length,
LAST(amount) AS last_amount,
NEXT(amount) AS drop_amount,
ROUND( (LAST(amount) - NEXT(amount)) / NULLIF(LAST(amount),0) * 100, 2 ) AS drop_pct
ONE ROW PER MATCH
AFTER MATCH SKIP PAST LAST ROW
PATTERN (A{3,} D)
DEFINE
A AS ( PREV(amount) IS NULL OR amount > PREV(amount) ),
D AS amount );
- PATTERN (A{3,} D) — ищем подпоследовательность из минимум трёх строго возрастающих дней A, за которой сразу идёт день падения D.
- DEFINE A — рост относительно предыдущего дня в группе клиента.
- DEFINE D — падение относительно предыдущего дня (последнего A).
- MEASURES — извлекаем границы серии и метрики, NEXT(amount) берёт сумму в день разворота.
- AFTER MATCH SKIP PAST LAST ROW — не пересекаем серии.
Бонус: защита от «лестниц» с пропусками дат
Если в данных бывают пропуски дней, а вам нужны подряд идущие даты, добавьте проверку календарной последовательности:
DEFINE
A AS ( (PREV(amount) IS NULL OR amount > PREV(amount))
AND (PREV(day_date) IS NULL OR day_date = PREV(day_date) + 1) ),
D AS ( amount
Зачем так делать
MATCH_RECOGNIZE — мощный инструмент Oracle для поиска сложных паттернов по времени (распознавание трендов, разрывов, «голова-плечи», аномалий). Он заменяет громоздкие CTE с аналитиками и делает запрос короче, быстрее и точнее при работе с последовательностями.
@sqlhub
📅 Дата: 19 августа 2025г
🕙 Время: 11:00
Можно ли на 100% защитить бизнес от киберугроз? Как минимизировать потери бизнеса, если атака уже произошла?
Две из трех российских компаний можно взломать менее чем за сутки, при этом наиболее уязвимы предприятия из сферы торговли, обрабатывающей промышленности, а также, как ни странно, информации и связи. Атаки способны нанести серьезный урон бизнесу вплоть до его закрытия. Неготовность компании, инфраструктуры и сотрудников к встрече с киберугрозами значительно упрощает работу хакеров.
Приглашаем руководителей и специалистов ИТ и ИБ подразделений поговорить о том, как подготовить ИТ-инфраструктуру компании и сотрудников к кибератакам.
📋 Программа:
⚡️ Самые актуальные киберугрозы сегодня и риски для бизнеса
⚡️ Организация защиты – чек-лист для руководителя
⚡️ Обеспечение устойчивости ИТ-инфраструктуры
⚡️ Бэкап данных и приложений: сценарии применения
ЗАРЕГИСТРИРОВАТЬСЯ
🔌 pREST (PostgreSQL REST) — проект, предлагающий готовое решение для создания RESTful API поверх PostgreSQL. Этот инструмент написан на Go и позволяет быстро развернуть высокопроизводительный API-сервер без сложной настройки. Поддержка начинается с PostgreSQL 9.5, что делает его совместимым с большинством существующих баз данных.
Проект особенно удобен для разработчиков, которым нужно быстро создать API с минимальными затратами. Он поддерживает SQL-запросы через REST-эндпоинты, аутентификацию и кастомные маршруты. Развернуть pREST можно даже в один клик, например, на Heroku.
🤖 GitHub
@sqlhub
Владелец канала не предоставил расширенную статистику, но Вы можете сделать ему запрос на ее получение.
Также Вы можете воспользоваться расширенным поиском и отфильтровать результаты по каналам, которые предоставили расширенную статистику.
Также Вы можете воспользоваться расширенным поиском и отфильтровать результаты по каналам, которые предоставили расширенную статистику.
Подтвердите, что вы не робот