36043
По всем вопросам- @workakkk @itchannels_telegram - 🔥лучшие ит-каналы @ai_machinelearning_big_data - Machine learning @pythonl - Python @pythonlbooks- python книги📚 @datascienceiot - ml книги📚 РКН: https://vk.cc/cIi9vo
🟠 ParadeDB — альтернатива Elasticsearch на базе PostgreSQL
В эпоху data-driven решений поиск и аналитика в реальном времени стали обязательной частью любой стратегии.
ParadeDB — это новый open-source игрок: расширение для PostgreSQL, превращающее его в мощный движок полнотекстового поиска и аналитики.
✨ Возможности:
Реал-тайм поиск по данным прямо в Postgres
Высокая производительность без внешних сервисов
Open-source и легко встраивается в существующую инфраструктуру
🔗 Подробнее: blackslate.io/articles/paradedb-an-elasticsearch-alternative-built-on-postgresql
@sqlhub
Redis и Valkey – изучите секреты самых популярных open source key-value СУБД
В высоко-нагруженных сервисах Redis — не просто кэш, а важная подсистема, на которой строится значимая часть бизнес-логики. От его стабильности, масштабируемости и отказоустойчивости зависит производительность всего сервиса. Valkey - это современный производительный форк Redis с открытым исходным кодом, поддерживаемый сообществом и рядом крупных компаний. Valkey набирает популярность, поддержан крупными облачными провайдерами, и вполне возможно потеснит или вовсе заменит Redis со временем.
Наш курс — для тех, кто хочет держать свой стэк и знания актуальными и глубоко разбираться, как устроен Redis и Valkey.
🌐 В программе курса:
🤩 Как эффективно использовать базовые и продвинутые структуры данных: HyperLogLog, Bitmaps и Bisields, Streams, Geospatial-индексы, Bloom Filters
🤩 Как проектировать in-memory системы, которые не разваливаются под нагрузкой, что влияет на отказоустойчивость и как её добиться
🤩 Как работает репликация и кластеризация на практике (режимы Sentinel и Cluster)
🤩 Как встроить Redis/Valkey в реальный прод с учётом безопасности, интеграций и современных практик мониторинга.
Кто мы: R&D-центр Devhands, основатель школы Алексей Рыбак. Автор курса — Константин Ратвин, преподаватель МФТИ на кафедре БИТ (совместно со СберТех), эксперт по распределённым системам и банковским ИТ, автор курсов по СУБД и инфраструктуре, спикер HighLoad++ и PGConf.
🗓 Старт курса: 7 октября, 6 недель обучения.
Изучить программу и записаться можно здесь.
Ждем вас!
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqxNnFKA
🚀 Вышел Postgres 18 — с поддержкой Async I/O
Раньше все операции чтения были блокирующими, теперь - нет.
Результат: огромный прирост производительности для приложений с интенсивным чтением.
⚡️ Async I/O включён по умолчанию в Postgres 18!
Что интересного:
- Новый алгоритм skip scan для многостолбцовых индексов
- Параллельное построение GIN-индексов (JSON, полнотекст)
- Виртуальные генерируемые столбцы (значения считаются на лету)
- Функция uuidv7() — UUID с временной сортировкой
- Сохранение статистики планировщика при мажорных апгрейдах
- Поддержка OAuth 2.0, улучшения TLS и безопасности
- Новый протокол взаимодействия клиентов и утилит — v3.2
🟠 Релиз: https://www.postgresql.org/about/news/postgresql-18-released-3142/
@sqlhub
🚀 SQL Ultimate Course — бесплатный полный курс по SQL на GitHub
Если хочешь освоить SQL с нуля и дойти до продвинутого уровня — бери готовый репозиторий:
📂 Что внутри:
- datasets/ — реальные данные из ERP и CRM
- scripts/ — готовые SQL-скрипты для практики
- docs/ — документация и материалы курса
✅ MIT-лицензия — можно использовать и менять свободно
🌍 Подходит для всех СУБД (PostgreSQL, MySQL и др.)
🎥 К курсу прилагаются видео и гайды от автора
Автор: Data With Baraa — практик и ютубер, собравший в одном месте полный SQL-путь от простого SELECT до оптимизации запросов и реальных кейсов.
🔗 Репозиторий здесь: https://github.com/DataWithBaraa/sql-ultimate-course
Сохраняй, проходи и прокачивай SQL 💡
@sqlhub
🔥 Ваши данные стоят слишком дорого, чтобы ими рисковать
Positive Technologies 8 октября запустит новый продукт — PT Data Security. Он создан, чтобы вовремя выявлять угрозы и предотвращать утечки, пока они не привели к кризису.
На онлайн-трансляции вы первыми узнаете:
— Какие задачи и риски сегодня определяют настоящее и будущее рынка защиты данных.
— Какие вызовы стоят перед компаниями на рынке защиты данных.
— Почему Positive Technologies выходит на рынок защиты данных с новым подходом.
🕒 15:00 мск
📍 Онлайн
👉 Регистрация
💡 SQL: быстрое нахождение первых или последних записей с DISTINCT ON !!!
В PostgreSQL есть полезный приём — DISTINCT ON, который позволяет взять первую строку в каждой группе по определённому полю.
SELECT DISTINCT ON (customer_id)
customer_id,
order_date,
amount
FROM orders
ORDER BY customer_id, order_date DESC;
📈 Гайд по продвинутым вопросам для разработчика LLM
Собеседования на позицию разработчика больших языковых моделей (LLM) в топовых AI-компаниях предъявляют высокие требования к знаниям.
Кандидату необходимо понимать устройство архитектуры трансформеров, владеть методами эффективного обучения и инференса, разбираться в оптимизациях памяти и скорости (таких как LoRA, FlashAttention, vLLM, ZeRO), знать тонкости распределённого тренинга, принципов LLMOps (MLOps для больших моделей) и нюансов продакшн-развертывания LLM.
Также часто проверяют умение решать реальные задачи: от проектирования пайплайна для Sparse MoE до анализа проблем с памятью на GPU, понимания различий между методами обучения с подкреплением (RLHF vs DPO) и способов масштабирования моделей.
Этот гайд структурирован по ключевым темам, соответствующим областям знаний, которые обычно проверяются на собеседованиях. Для каждой темы мы рассмотрим, что пытаются проверить интервьюеры, приведём пример формулировки вопроса и дадим подробный разбор ответа с обсуждением трэйд-оффов, примеров кода или схем, где это уместно. Вы можете изучать материал по разделам, чтобы сфокусироваться на интересующей области.
👉 Гайд
💡 SQL: использование оконных функций для накопительных сумм
Хотите посчитать «бегущую сумму» или ранжирование без подзапросов?
Используйте WINDOW FUNCTIONS — они считаются построчно, не сворачивая данные.
SELECT
customer_id,
order_date,
amount,
SUM(amount) OVER (
PARTITION BY customer_id
ORDER BY order_date
) AS running_total
FROM orders;
🟡🔵 Разбираемся с SQL JOIN и фильтрами в OUTER JOIN
Одна из самых частых ошибок при работе с SQL - путаница между условием в ON и фильтром в WHERE. На картинке это отлично показано.
Когда мы пишем LEFT OUTER JOIN, мы ожидаем, что слева попадут все строки. Но результат зависит от того, где именно мы накладываем фильтры.
✨ Пример:
У нас есть две таблицы:
- Левая: фигура + число
- Правая: число + фигура
Мы делаем LEFT OUTER JOIN.
1. Фильтр в ON
Если написать ON right_table.number = 1, то соединение будет проверять условие именно во время джойна. Это значит: строки слева сохранятся, даже если справа нет совпадений — просто будут NULL.
2. Фильтр в WHERE
Если написать WHERE left_table.number = 1, то фильтрация произойдёт уже после объединения. В этом случае строки, не прошедшие условие, полностью исчезнут из результата.
⚡ Почему это нужно знать?
- ON управляет логикой соединения.
- WHERE убирает строки после соединения.
- В OUTER JOIN это принципиальная разница: при фильтре в ON мы сохраним «пустые» строки, при фильтре в WHERE они будут удалены.
📌 Вывод:
- Если нужно оставить все строки из левой таблицы и лишь добавить совпадения справа - фильтр ставим в ON.
- Если хотим действительно отобрать только подходящие строки — фильтр в WHERE.
Именно поэтому в сложных запросах всегда спрашивай себя: фильтр — это часть логики соединения или это окончательное ограничение?
#SQL #joins #databases
🖥 Полный гайд по реальным SQL-вопросам с собеседований
Введение. Собеседования на позиции, связанные с данными (аналитики, инженеры, ученые данных), всё чаще включают нестандартные и продвинутые вопросы по SQL.
Большие технологические компании (Google, Amazon и др.) предъявляют высокие требования: важна не только правильность запроса, но и умение оптимизировать его и разбираться в реальных бизнес-данных.
В этом гайде мы разберем категории наиболее распространенных сложных SQL-задач с реальных собеседований – от платформ вроде DataLemur, LeetCode, StrataScratch – и подробно поясним решения.
Каждая задача сопровождена анализом: условие, оптимальный подход, используемые SQL-конструкции, возможные ошибки и финальное решение (для PostgreSQL и MySQL, с указанием различий где необходимо).
В конце добавлен отдельный раздел о современных базах данных, включая векторные БД (Pinecone, Weaviate, Milvus и др.), с примерами того, что могут спросить про них на собеседовании и как выглядят SQL-подобные запросы для работы с векторами.
📌 Читать гайд
⚡️ На чистом SQL запустили легендарный DOOM — прямо внутри базы данных CedarDB!
Игра не просто работает, а поддерживает многопользовательский режим, отрисовывая всё с помощью ASCII-графики.
Каждый компонент — от рендера до синхронизации игроков — написан исключительно на SQL-запросах.
🎮 GitHub для настоящих ценителей извращённого кода: https://github.com/cedardb/DOOMQL
@sqlhub
🚀 Умная система мониторинга Alerta
Alerta — это масштабируемый инструмент мониторинга, который легко настраивается и принимает оповещения из различных источников. Он предлагает быструю визуализацию данных с возможностью глубокого анализа.
🚀 Основные моменты:
- Масштабируемая архитектура
- Минимальная конфигурация
- Поддержка MongoDB и PostgreSQL
- Удобная веб-консоль для визуализации
- Легкая интеграция с облачными платформами
📌 GitHub: https://github.com/alerta/alerta
#python
📊 Новое поколение баз данных для ИИ-агентов
Когда LLM-агенты работают с БД, они не делают один большой запрос. Вместо этого они засыпают систему тысячами мелких пробных запросов: проверяют структуру, ищут связи, тестируют планы. Это явление получило название agentic speculation. Итог — колоссальный перерасход ресурсов.
🆕 Исследователи предлагают «agent-first database» — базу, спроектированную с учётом поведения агентов.
🔑 Как это работает:
- Агент отправляет не просто SQL-запрос, а пробу с брифом: какая цель, на каком этапе он сейчас, какая нужна точность и что в приоритете.
- База может дать приближённый ответ, если данных уже достаточно, вместо того чтобы тратить ресурсы на полный расчёт.
- Запросы поддерживают семантический поиск по таблицам и строкам, что в SQL выразить сложно.
⚙️ Внутренние механизмы:
- Sleeper agents подсказывают лучшие join’ы, объясняют пустые результаты и оценивают стоимость запросов.
- Оптимизатор проб объединяет похожие запросы, кэширует частичные результаты и выдаёт быстрые ответы, когда «достаточно сигнала».
- Agentic memory хранит знания, которые можно переиспользовать в будущем.
- Общий менеджер транзакций позволяет быстро пробовать разные сценарии («what-if») без лишних затрат.
📌 Вывод: традиционный SQL не подходит для эпохи LLM. Нужны базы, которые понимают стратегию агента, сокращают лишние шаги и экономят ресурсы.
🔗 Paper: arxiv.org/abs/2509.00997
#AI #Databases #LLM #Agents
@sqlhub
🔥 Успех в IT = скорость + знания + окружение
Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/devops_teleg
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_1001_notes
Java: t.me/java_library
Базы данных: t.me/databases_tg
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: /channel/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy
Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
Первый раз в первый X5 Tech-класс!
Школьники бегут за парты, а X5 Tech открывает набор в уникальный IT-класс для студентов. Здесь можно проверить свои скилы в кодерских задачах, получить звездочки в IT-дневник и забрать крутые призы. Покажи всему классу, на что способен!
Что ждет участников:
— задачи по backend-, frontend-, мобильной разработке, Data Science, DevOps-инфраструктуре и аналитике данных;
— ценные призы: проходки на экскурсию в распределительный центр для москвичей, подарочные карты в Пятёрочку и другие подарки от X5 Tech;
— сбор звездочек в IT-дневник и карьерные гайды;
— задания в формате квеста.
Первый звонок в X5 Tech-классе уже прозвенел! Записывай первую домашку — изучить расписание предметов по ссылке.
⚡️ Chroma — база данных для эмбеддингов с открытым исходным кодом
Если строишь чат-бота или RAG-систему — Chroma даст твоему приложению память и быстрый поиск по векторным представлениям.
✨ Что умеет:
- Поддержка Python и JavaScript
- Быстрый поиск и фильтрация по embeddings
- Интеграция с LangChain и LlamaIndex
- Простое API для добавления документов и метаданных
🚀 Установка:
pip install chromadb
# или
npm install chromadb
chroma run --path ./chroma_db
import chromadb
client = chromadb.Client()
col = client.create_collection("docs")
col.add(documents=["Doc1","Doc2"], ids=["1","2"])
res = col.query(query_texts=["найди похожее"], n_results=1)
⚡️ Как тестировать код без настоящей базы данных
Когда вы пишете юнит-тесты, подключение к реальной БД — лишнее:
- это медленно,
- тесты становятся нестабильными,
- нужен живой сервер.
Решение — замокать вызов pandas.read_sql и вернуть подставные данные.
Пример функции:
def query_user_data(user_id):
query = f"SELECT id, name FROM users WHERE id = {user_id}"
return pd.read_sql(query, "postgresql://localhost/mydb")
from unittest.mock import patch
import pandas as pd
@patch("pandas.read_sql")
def test_database_query_mocked(mock_read_sql):
mock_read_sql.return_value = pd.DataFrame(
{"id": [123], "name": ["Alice"]}
)
result = query_user_data(user_id=123)
assert result["name"].iloc[0] == "Alice"
⚡️ Предотвращаем потерю данных с ACID-транзакциями в DuckDB!
❌ Без транзакций:
- Списание у Alice прошло ✅
- Пополнение у Bob сломалось ❌
➡️ Итог: деньги «пропали».
✅ С транзакцией (ACID):
- Оба обновления либо проходят вместе, либо откатываются
- Баланс остаётся консистентным
- Никаких «висящих» операций
Пример:
conn.execute("BEGIN TRANSACTION")
try:
conn.execute("UPDATE accounts SET balance = balance - 200 WHERE name = 'Alice'")
conn.execute("UPDATE accounts SET balance = balance + 200 WHERE name = 'Bob'")
conn.execute("COMMIT")
except:
conn.execute("ROLLBACK")
💡Неочевидный SQL-совет
Часто нужно выбрать топ-N строк внутри каждой группы — например, два самых дорогих товара в категории.
Вместо сложных оконных функций можно использовать QUALIFY (в Snowflake, BigQuery, DuckDB, Trino):
SELECT category_id, product_id, price
FROM products
QUALIFY ROW_NUMBER() OVER (PARTITION BY category_id ORDER BY price DESC) <= 2;
🗄️ Неочевидный SQL-совет
Иногда нужно выбрать строки с первыми или последними значениями внутри группы — например, последний заказ каждого клиента.
Вместо вложенных подзапросов используйте DISTINCT ON (PostgreSQL):
SELECT DISTINCT ON (customer_id)
customer_id, order_id, created_at
FROM orders
ORDER BY customer_id, created_at DESC;
Не пропустите! 24 сентября в 20:00 пройдет бесплатный урок “Маленькие хитрости GROUP BY” от онлайн-курса “PostgreSQL для администраторов баз данных и разработчиков”.
Группировка строк с использованием GROUP BY - один из самых мощных инструментов в арсенале аналитиков и разработчиков. Узнайте теоретические основы и практические возможности этого инструмента на открытом уроке.
Что вас ждет на вебинаре:
- Вспомним, как устроен GROUP BY, и рассмотрим его на наглядных примерах
- Оптимизируем работу группировки в связке с индексами
- Разберемся с особенностями группировки строк в PostgreSQL
- Изучим несколько полезных приемов для работы с GROUP BY
Что будет на уроке:
- Разберём логику работы GROUP BY и типичные ошибки, которые тормозят запросы
- Оптимизация группировки с помощью индексов — когда она действительно работает
- Специфика GROUP BY в PostgreSQL: что можно, а что лучше не делать
- Несколько приёмов, которые ускорят и упростят обработку больших наборов данных
Результат участия:
- Поймёте, как извлекать максимум из GROUP BY в PostgreSQL
- Сможете оптимизировать работу запросов с большими объёмами данных
- Получите набор трюков, которые можно применять прямо в продакшене
Успейте записаться на урок: https://otus.pw/uQQf/?erid=2W5zFK131ig
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Год назад здесь была реклама нового, но уже довольно любопытного курса по API. За год его автор, тимлид команды аналитиков Глеб Учитель, проделал огромную работу: на курс записалось более 1300 человек. И сейчас его знают многие.
Если вы тоже хотите расти по хардам в IT —
добро пожаловать!
🔹🔹 🔹🔹
Начните с бесплатных уроков по архитектуре и интеграциям в чат-боте курса. Переходите и знакомьтесь.
👇
@studyit_help_bot
Скидка на курс от канала —
1 000₽ по промокоду SQLHUB до 30 сентября.
The Experts: School of Analytics продлевает дедлайн подачи заявок на годовую программу по треку Top Talents!
✋ Кто такие The Experts?
Это сообщество подтверждённых профессионалов в сферах финансов, аналитики и консалтинга. Мы делаем ставку на прикладное образование и запускаем программы, которые помогают начать карьеру и развиваться в выбранной индустрии.
School of Analytics - одна из образовательных вертикалей проекта The Experts.
👉 О годовой программе
Программа сочетает:
- Удобный формат: онлайн-лекции и воркшопы, обучение легко совмещать с вузом или работой;
- Менторство и карьерную поддержку: выпускники School of Analytics востребованы на рынке;
- Сообщество профессионалов: нетворкинг со спикерами и выпускниками, мастер-классы с представителями компаний-партнёров (Яндекс, OZON, VK, Т-Банк и др.).
- Вас ждут еженедельные лекции и практические занятия от дата- и бизнес-аналитиков.
Темы курса:
- SQL и управление базами данных,
- визуализация в PowerBI и DataLens,
- проведение А/В тестирований и проверка гипотез,
- юнит-экономика и работа с метриками,
- моделирование данных в Python и многое другое.
📎 Что даёт трек Top Talents?
До 94% покрытия стоимости обучения при успешном прохождении всех этапов отбора:
- онлайн-тестирование;
- решение кейса;
- интервью в Zoom.
Кто может подать заявку?
- студенты российских и зарубежных вузов (бакалавриат, специалитет, магистратура), получающие первое высшее образование;
- выпускники этих программ 2025 года.
👉 Подробности и регистрация
У вас есть все шансы пройти на программу, не упустите возможность!
Также открыт набор на трек EXPERT — это полный доступ ко всем возможностям программы и дополнительные преимущества. Подать заявку может любой желающий!
📊 1 000 000 рублей и преимущества при поступлении в магистратуры ФКН ВШЭ — это главные призы олимпиады AIDAO
Командную олимпиаду по ИИ и анализу данных проводят ФКН НИУ ВШЭ и Яндекс Образование. Будет два этапа: онлайн и офлайн-финал в Москве. Для участия нужно собрать команду студентов зарегистрироваться на сайте.
💡 Оба этапа будут на английском языке.
💡 Во время олимпиады будут вебинары с экспертами и сотрудниками научных лабораторий, где вы сможете задать любой вопрос по заданиям.
Проявить себя, получить опыт и побороться за призы можно по ссылке.
🖥 pgvectorscale — это расширение для PostgreSQL, которое предоставляет функциональность для работы с векторами, что полезно в контексте обработки и хранения векторных представлений данных, например, для машинного обучения или поиска по векторным данным!
🌟 Этот проект является частью экосистемы Timescale, которая известна своими решениями для работы с временными рядами, но здесь акцент сделан именно на работу с векторами для быстрого поиска и манипуляций с многомерными данными.
🔐 Лицензия: PostgreSQL
🖥 Github
@sqlhub
Создавая будущее: магистратура по прикладному ИИ
Нейросети пишут код, создают контент и даже помогают в разработке лекарств. Спрос на ИИ-специалистов взлетел на 80% всего за год. А IT-гиганты, банки и телеком охотятся за талантами.
Станьте таким специалистом с онлайн-магистратурой «Прикладной искусственный интеллект» от УрФУ и Нетологии. Это программа, где вы не просто учитесь, а решаете реальные задачи от Яндекса, МТС Банка и Dodo Brands. Где вместо скучных лекций — проекты и хакатоны, а преподаватели — практики из ведущих компаний.
За 2 года вы научитесь:
Использовать Python и его библиотеки.
Генерировать гипотезы и подбирать алгоритмы для разных моделей.
Строить конвейеры обработки данных.
Автоматизировать ML-пайплайн.
А ещё узнаете, как ИИ применяют в медицине, e-commerce и банковском секторе. Потому что будущее AI — не только в IT.
Эта программа — одна из немногих, куда можно поступить в сентябре. Если после летнего отдыха вы полны сил и готовы к новому, сделайте уверенный шаг в ИИ-сферу.
Подать документы можно до 18 сентября.
Узнайте подробности по ссылке: https://netolo.gy/emSU
Реклама. ООО "Нетология". ИНН 7726464125. Erid:2VSb5xKWsz9
🖥 Microsoft вопрос с собеседования по SQL
Задача: найти топ-2 Power Users в Microsoft Teams — пользователей, которые отправили больше всего сообщений в августе 2022. Вывести их sender_id и количество сообщений.
Подход:
1) Отфильтровать сообщения по интервалу августа — в T-SQL удобно задавать полуинтервалом [2022-08-01, 2022-09-01), без функций над датой (чтобы не ломать индексы).
2) Посчитать сообщения по sender_id.
3) Отсортировать по убыванию и взять TOP 2.
Если хотите корректно обрабатывать «ничьи» — используйте DENSE_RANK().
Быстрое решение (T-SQL):
SELECT TOP (2)
sender_id,
COUNT(*) AS message_count
FROM messages
WHERE sent_date >= '2022-08-01'
AND sent_date < '2022-09-01'
GROUP BY sender_id
ORDER BY COUNT(*) DESC, sender_id;
WITH monthly AS (
SELECT sender_id, COUNT(*) AS message_count
FROM messages
WHERE sent_date >= '2022-08-01'
AND sent_date < '2022-09-01'
GROUP BY sender_id
),
ranked AS (
SELECT sender_id, message_count,
DENSE_RANK() OVER (ORDER BY message_count DESC) AS rnk
FROM monthly
)
SELECT sender_id, message_count
FROM ranked
WHERE rnk <= 2
ORDER BY message_count DESC, sender_id;
🧩 SQL хитрый трюк
Хотите быстро найти дубликаты в таблице — но не просто значения, а ещё и сразу оставить только уникальные строки?
Вместо сложных подзапросов используйте `ROW_NUMBER()` с PARTITION BY:
WITH numbered AS (
SELECT
id,
email,
ROW_NUMBER() OVER (PARTITION BY email ORDER BY id) AS rn
FROM users
)
SELECT id, email
FROM numbered
WHERE rn = 1;
PARTITION BY email группирует строки по email ROW_NUMBER() нумерует их внутри группы WHERE rn = 1 оставляет только первую запись (а все дубликаты убираются)
🛠️ Удобный инструмент для управления кластерами Postgres
Ivory — это инструмент с открытым исходным кодом, который упрощает работу с кластерами Postgres, предоставляя удобный интерфейс для разработчиков и администраторов баз данных. Он позволяет управлять конфигурацией кластера, выполнять запросы и контролировать состояние в одном месте.
🚀 Основные моменты:
- Упрощает управление Postgres кластерами
- Интуитивно понятный интерфейс для основных функций Patroni
- Возможность работы локально или в виртуальной машине
- Поддержка редактирования конфигурации кластера
- Инструменты для диагностики и устранения проблем
📌 GitHub: https://github.com/veegres/ivory
#go
🔬 DuckDB in Science
Свежий сайт с подборкой статей, лекций и подкастов и примеров о том, как DuckDB используется в научных исследованиях:
https://duckdb.org/science
@sqlhub