💡 SQL: условные агрегаты через CASE !!!
Хотите посчитать сумму только по условию прямо внутри агрегата?
Для этого не нужен отдельный WHERE — используйте
🔎 В одном запросе можно посчитать суммы по разным статусам — и не делать несколько JOIN или подзапросов.
Работает также с COUNT(), AVG() и другими агрегатами.
@sqlhub
Хотите посчитать сумму только по условию прямо внутри агрегата?
Для этого не нужен отдельный WHERE — используйте
CASE WHEN
.
SELECT
customer_id,
SUM(CASE WHEN status = 'completed' THEN amount ELSE 0 END) AS completed_sum,
SUM(CASE WHEN status = 'pending' THEN amount ELSE 0 END) AS pending_sum
FROM orders
GROUP BY customer_id;
🔎 В одном запросе можно посчитать суммы по разным статусам — и не делать несколько JOIN или подзапросов.
Работает также с COUNT(), AVG() и другими агрегатами.
@sqlhub
👍23❤7🥰4
💡 SQL: поиск уникальных значений с COUNT(DISTINCT)
Хотите посчитать количество уникальных элементов по каждому пользователю?
Не нужно подзапросов — используйте
🔎 В одном запросе можно узнать, сколько разных товаров и категорий купил каждый пользователь.
Это упрощает аналитику и заменяет сложные вложенные запросы.
@sqlhub
Хотите посчитать количество уникальных элементов по каждому пользователю?
Не нужно подзапросов — используйте
COUNT(DISTINCT ...)
прямо в выборке.
SELECT
user_id,
COUNT(DISTINCT product_id) AS unique_products,
COUNT(DISTINCT category) AS unique_categories
FROM purchases
GROUP BY user_id;
🔎 В одном запросе можно узнать, сколько разных товаров и категорий купил каждый пользователь.
Это упрощает аналитику и заменяет сложные вложенные запросы.
@sqlhub
👍24❤7🔥7
Forwarded from Machinelearning
Что внутри:
- Доступны модели Hunyuan-MT-7B и Hunyuan-MT-Chimera-7B
- Поддержка 33 языков
- Chimera-7B — это первая d индустрии откртытая ансамблевая модель
- 1-е место в 30 из 31 категорий на международном конкурсе WMT25 (Workshop on Machine Translation 2025, крупнейшая в мире конференция-соревнование по машинному переводу)
- Hunyuan-MT-7B лидирует среди моделей своего размера
Demo: https://hunyuan.tencent.com/modelSquare/home/list
@ai_machinelearning_big_data
#AI #NLP #Translation #Tencent
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍5🔥5🥰1
📦 C++ обертка для SQLite с расширенными возможностями ⚙️
Библиотека boost_sqlite предоставляет удобный интерфейс для работы с SQLite в C++. Она поддерживает типизированные запросы, подготовленные выражения, функции на основе JSON и пользовательские функции. Библиотека не скрывает C-API SQLite, а дополняет его.
🚀Основные моменты:
- Типизированные запросы и подготовленные выражения
- Поддержка JSON и пользовательских функций
- Виртуальные таблицы и хуки событий
- Легкая интеграция с существующими проектами
@sqlhub
Библиотека boost_sqlite предоставляет удобный интерфейс для работы с SQLite в C++. Она поддерживает типизированные запросы, подготовленные выражения, функции на основе JSON и пользовательские функции. Библиотека не скрывает C-API SQLite, а дополняет его.
🚀Основные моменты:
- Типизированные запросы и подготовленные выражения
- Поддержка JSON и пользовательских функций
- Виртуальные таблицы и хуки событий
- Легкая интеграция с существующими проектами
@sqlhub
❤4🔥4🥰2
🧩 Задача из интервью TikTok по SQL
Найдите пользователей, которые не подтвердили регистрацию в день регистрации, но подтвердили на следующий день.
Исходные таблицы:
-
-
Решение (универсально для Postgres/MySQL):
Вариант через агрегацию (Postgres)🧩️️
@sqlhub
Найдите пользователей, которые не подтвердили регистрацию в день регистрации, но подтвердили на следующий день.
Исходные таблицы:
-
emails(email_id, user_id, signup_date)
-
texts(text_id, email_id, signup_action {'Confirmed','Not confirmed'}, action_date)
Решение (универсально для Postgres/MySQL):
SELECT DISTINCT e.user_id
FROM emails e
WHERE EXISTS (
SELECT 1
FROM texts t1
WHERE t1.email_id = e.email_id
AND t1.signup_action = 'Confirmed'
AND DATE(t1.action_date) = DATE(e.signup_date + INTERVAL '1 day') -- подтвердил на 2-й день
)
AND NOT EXISTS (
SELECT 1
FROM texts t0
WHERE t0.email_id = e.email_id
AND t0.signup_action = 'Confirmed'
AND DATE(t0.action_date) = DATE(e.signup_date) -- не подтвердил в день регистрации
);
Вариант через агрегацию (Postgres)🧩️️
SELECT e.user_id
FROM emails e
JOIN texts t ON t.email_id = e.email_id
GROUP BY e.user_id, e.signup_date
HAVING COUNT(*) FILTER (
WHERE t.signup_action = 'Confirmed' AND DATE(t.action_date) = DATE(e.signup_date)
) = 0
AND COUNT(*) FILTER (
WHERE t.signup_action = 'Confirmed' AND DATE(t.action_date) = DATE(e.signup_date + INTERVAL '1 day')
) >= 1;
@sqlhub
🔥10👍4❤2🥰1
🔬 DuckDB in Science
Свежий сайт с подборкой статей, лекций и подкастов и примеров о том, как DuckDB используется в научных исследованиях:
https://duckdb.org/science
@sqlhub
Свежий сайт с подборкой статей, лекций и подкастов и примеров о том, как DuckDB используется в научных исследованиях:
https://duckdb.org/science
@sqlhub
❤6👍4🔥3
Первый раз в первый X5 Tech-класс!
Школьники бегут за парты, а X5 Tech открывает набор в уникальный IT-класс для студентов. Здесь можно проверить свои скилы в кодерских задачах, получить звездочки в IT-дневник и забрать крутые призы. Покажи всему классу, на что способен!
Что ждет участников:
— задачи по backend-, frontend-, мобильной разработке, Data Science, DevOps-инфраструктуре и аналитике данных;
— ценные призы: проходки на экскурсию в распределительный центр для москвичей, подарочные карты в Пятёрочку и другие подарки от X5 Tech;
— сбор звездочек в IT-дневник и карьерные гайды;
— задания в формате квеста.
Первый звонок в X5 Tech-классе уже прозвенел! Записывай первую домашку — изучить расписание предметов по ссылке.
Школьники бегут за парты, а X5 Tech открывает набор в уникальный IT-класс для студентов. Здесь можно проверить свои скилы в кодерских задачах, получить звездочки в IT-дневник и забрать крутые призы. Покажи всему классу, на что способен!
Что ждет участников:
— задачи по backend-, frontend-, мобильной разработке, Data Science, DevOps-инфраструктуре и аналитике данных;
— ценные призы: проходки на экскурсию в распределительный центр для москвичей, подарочные карты в Пятёрочку и другие подарки от X5 Tech;
— сбор звездочек в IT-дневник и карьерные гайды;
— задания в формате квеста.
Первый звонок в X5 Tech-классе уже прозвенел! Записывай первую домашку — изучить расписание предметов по ссылке.
❤1👎1
🛠️ Удобный инструмент для управления кластерами Postgres
Ivory — это инструмент с открытым исходным кодом, который упрощает работу с кластерами Postgres, предоставляя удобный интерфейс для разработчиков и администраторов баз данных. Он позволяет управлять конфигурацией кластера, выполнять запросы и контролировать состояние в одном месте.
🚀 Основные моменты:
- Упрощает управление Postgres кластерами
- Интуитивно понятный интерфейс для основных функций Patroni
- Возможность работы локально или в виртуальной машине
- Поддержка редактирования конфигурации кластера
- Инструменты для диагностики и устранения проблем
📌 GitHub: https://github.com/veegres/ivory
#go
Ivory — это инструмент с открытым исходным кодом, который упрощает работу с кластерами Postgres, предоставляя удобный интерфейс для разработчиков и администраторов баз данных. Он позволяет управлять конфигурацией кластера, выполнять запросы и контролировать состояние в одном месте.
🚀 Основные моменты:
- Упрощает управление Postgres кластерами
- Интуитивно понятный интерфейс для основных функций Patroni
- Возможность работы локально или в виртуальной машине
- Поддержка редактирования конфигурации кластера
- Инструменты для диагностики и устранения проблем
📌 GitHub: https://github.com/veegres/ivory
#go
👍3❤2🔥2
🔥 Успех в IT = скорость + знания + окружение
Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: t.iss.one/ai_machinelearning_big_data
Python: t.iss.one/pythonl
Linux: t.iss.one/linuxacademiya
Собеседования DS: t.iss.one/machinelearning_interview
C++ t.iss.one/cpluspluc
Docker: t.iss.one/devops_teleg
Хакинг: t.iss.one/linuxkalii
Devops: t.iss.one/DevOPSitsec
Data Science: t.iss.one/data_analysis_ml
Javascript: t.iss.one/javascriptv
C#: t.iss.one/csharp_1001_notes
Java: t.iss.one/java_library
Базы данных: t.iss.one/databases_tg
Python собеседования: t.iss.one/python_job_interview
Мобильная разработка: t.iss.one/mobdevelop
Golang: t.iss.one/Golang_google
React: t.iss.one/react_tg
Rust: t.iss.one/rust_code
ИИ: t.iss.one/vistehno
PHP: t.iss.one/phpshka
Android: t.iss.one/android_its
Frontend: t.iss.one/front
Big Data: t.iss.one/bigdatai
МАТЕМАТИКА: t.iss.one/data_math
Kubernets: t.iss.one/kubernetc
Разработка игр: https://t.iss.one/gamedev
Haskell: t.iss.one/haskell_tg
Физика: t.iss.one/fizmat
💼 Папка с вакансиями: t.iss.one/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.iss.one/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.iss.one/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.iss.one/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://t.iss.one/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.iss.one/memes_prog
🇬🇧Английский: t.iss.one/english_forprogrammers
🧠ИИ: t.iss.one/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://t.iss.one/addlist/BkskQciUW_FhNjEy
Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: t.iss.one/ai_machinelearning_big_data
Python: t.iss.one/pythonl
Linux: t.iss.one/linuxacademiya
Собеседования DS: t.iss.one/machinelearning_interview
C++ t.iss.one/cpluspluc
Docker: t.iss.one/devops_teleg
Хакинг: t.iss.one/linuxkalii
Devops: t.iss.one/DevOPSitsec
Data Science: t.iss.one/data_analysis_ml
Javascript: t.iss.one/javascriptv
C#: t.iss.one/csharp_1001_notes
Java: t.iss.one/java_library
Базы данных: t.iss.one/databases_tg
Python собеседования: t.iss.one/python_job_interview
Мобильная разработка: t.iss.one/mobdevelop
Golang: t.iss.one/Golang_google
React: t.iss.one/react_tg
Rust: t.iss.one/rust_code
ИИ: t.iss.one/vistehno
PHP: t.iss.one/phpshka
Android: t.iss.one/android_its
Frontend: t.iss.one/front
Big Data: t.iss.one/bigdatai
МАТЕМАТИКА: t.iss.one/data_math
Kubernets: t.iss.one/kubernetc
Разработка игр: https://t.iss.one/gamedev
Haskell: t.iss.one/haskell_tg
Физика: t.iss.one/fizmat
💼 Папка с вакансиями: t.iss.one/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.iss.one/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.iss.one/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.iss.one/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://t.iss.one/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.iss.one/memes_prog
🇬🇧Английский: t.iss.one/english_forprogrammers
🧠ИИ: t.iss.one/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://t.iss.one/addlist/BkskQciUW_FhNjEy
Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
❤4👍3🔥1
🧩 SQL хитрый трюк
Хотите быстро найти дубликаты в таблице — но не просто значения, а ещё и сразу оставить только уникальные строки?
Вместо сложных подзапросов используйте `ROW_NUMBER()` с
📌 Что происходит:
-
-
-
💡 Так можно элегантно чистить таблицы от дублей без лишних вложенных запросов.
@sqlhub
Хотите быстро найти дубликаты в таблице — но не просто значения, а ещё и сразу оставить только уникальные строки?
Вместо сложных подзапросов используйте `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
оставляет только первую запись (а все дубликаты убираются)💡 Так можно элегантно чистить таблицы от дублей без лишних вложенных запросов.
@sqlhub
👍15🔥7❤1🥰1
📊 Новое поколение баз данных для ИИ-агентов
Когда 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
Когда 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
👍11❤8🔥4👎1
Задача: найти топ-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;
Вариант с учетом ничьих (tie-safe):
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;
Почему так:
- Фильтр по диапазону дат без функций сохраняет «sargable» запрос (используются индексы по sent_date).
- GROUP BY + COUNT(*) дают нужную метрику.
- DENSE_RANK() аккуратно захватывает все «совместные» вторые места.
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍6
🚀 Умная система мониторинга Alerta
Alerta — это масштабируемый инструмент мониторинга, который легко настраивается и принимает оповещения из различных источников. Он предлагает быструю визуализацию данных с возможностью глубокого анализа.
🚀 Основные моменты:
- Масштабируемая архитектура
- Минимальная конфигурация
- Поддержка MongoDB и PostgreSQL
- Удобная веб-консоль для визуализации
- Легкая интеграция с облачными платформами
📌 GitHub: https://github.com/alerta/alerta
#python
Alerta — это масштабируемый инструмент мониторинга, который легко настраивается и принимает оповещения из различных источников. Он предлагает быструю визуализацию данных с возможностью глубокого анализа.
🚀 Основные моменты:
- Масштабируемая архитектура
- Минимальная конфигурация
- Поддержка MongoDB и PostgreSQL
- Удобная веб-консоль для визуализации
- Легкая интеграция с облачными платформами
📌 GitHub: https://github.com/alerta/alerta
#python
👍6❤5🥰2
Создавая будущее: магистратура по прикладному ИИ
Нейросети пишут код, создают контент и даже помогают в разработке лекарств. Спрос на ИИ-специалистов взлетел на 80% всего за год. А IT-гиганты, банки и телеком охотятся за талантами.
Станьте таким специалистом с онлайн-магистратурой «Прикладной искусственный интеллект» от УрФУ и Нетологии. Это программа, где вы не просто учитесь, а решаете реальные задачи от Яндекса, МТС Банка и Dodo Brands. Где вместо скучных лекций — проекты и хакатоны, а преподаватели — практики из ведущих компаний.
За 2 года вы научитесь:
Использовать Python и его библиотеки.
Генерировать гипотезы и подбирать алгоритмы для разных моделей.
Строить конвейеры обработки данных.
Автоматизировать ML-пайплайн.
А ещё узнаете, как ИИ применяют в медицине, e-commerce и банковском секторе. Потому что будущее AI — не только в IT.
Эта программа — одна из немногих, куда можно поступить в сентябре. Если после летнего отдыха вы полны сил и готовы к новому, сделайте уверенный шаг в ИИ-сферу.
Подать документы можно до 18 сентября.
Узнайте подробности по ссылке: https://netolo.gy/emSU
Реклама. ООО "Нетология". ИНН 7726464125. Erid:2VSb5xKWsz9
Нейросети пишут код, создают контент и даже помогают в разработке лекарств. Спрос на ИИ-специалистов взлетел на 80% всего за год. А IT-гиганты, банки и телеком охотятся за талантами.
Станьте таким специалистом с онлайн-магистратурой «Прикладной искусственный интеллект» от УрФУ и Нетологии. Это программа, где вы не просто учитесь, а решаете реальные задачи от Яндекса, МТС Банка и Dodo Brands. Где вместо скучных лекций — проекты и хакатоны, а преподаватели — практики из ведущих компаний.
За 2 года вы научитесь:
Использовать Python и его библиотеки.
Генерировать гипотезы и подбирать алгоритмы для разных моделей.
Строить конвейеры обработки данных.
Автоматизировать ML-пайплайн.
А ещё узнаете, как ИИ применяют в медицине, e-commerce и банковском секторе. Потому что будущее AI — не только в IT.
Эта программа — одна из немногих, куда можно поступить в сентябре. Если после летнего отдыха вы полны сил и готовы к новому, сделайте уверенный шаг в ИИ-сферу.
Подать документы можно до 18 сентября.
Узнайте подробности по ссылке: https://netolo.gy/emSU
Реклама. ООО "Нетология". ИНН 7726464125. Erid:2VSb5xKWsz9
❤4👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Игра не просто работает, а поддерживает многопользовательский режим, отрисовывая всё с помощью ASCII-графики.
Каждый компонент — от рендера до синхронизации игроков — написан исключительно на SQL-запросах.
🎮 GitHub для настоящих ценителей извращённого кода: https://github.com/cedardb/DOOMQL
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯16❤9👍4🥰1