
🔥 Заказ на 20+ каналов — шанс выиграть iPhone 16 Pro
Массовые размещения дают просмотры в 2-3 раза дешевле и участие в розыгрыше
Подробнее

РегистрацияВойтиВойти
Скидка 3,5% на первые три заказа
Получите скидку на первые три заказа!
Зарегистрируйтесь и получите скидку 3,5% на первые рекламные кампании — промокод активен 7 дней.
33.8

SQL Community
4.5
9
Интернет технологии
272
12
Всё о базах данных! Активная аудитория канала включает в себя специалистов из разных областей:
Программирование, Frontend, JavaScript, HTML, CSS, Python, Java, PHP, C++, SQL, BackEnd, Windows/Linux/MacOS, DevOps, Информационная Безопасность, нейросети, QA, GameDev
Поделиться
В избранное
Купить рекламу в этом канале
Формат:
keyboard_arrow_down
- 1/24
- 2/48
- 3/72
- Нативный
- 7 дней
- Репост
1 час в топе / 24 часа в ленте
Количество:
keyboard_arrow_down
- 1
- 2
- 3
- 4
- 5
- 8
- 10
- 15
Стоимость публикации:
local_activity
8 391.60₽8 391.60₽local_mall
0.0%
Осталось по этой цене:0
Последние посты канала
💡 SQL-трюк: фильтрация по "первому в группе"
Часто нужно взять только первую запись из каждой группы (например, последние покупки клиентов).
Мало кто знает, что это можно сделать без подзапросов с помощью
ROW_NUMBER()
.
SELECT *
FROM (
SELECT
customer_id,
order_id,
order_date,
ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY order_date DESC) AS rn
FROM orders
) t
WHERE rn = 1;
{}
🔎 Здесь ROW_NUMBER()
нумерует строки внутри каждой группы customer_id
.
rn = 1
оставляет только самую свежую запись по каждому клиенту.3386
14:20
24.08.2025
💡 SQL: группировка по неделям
Иногда нужно посчитать статистику не по дням, а по неделям.
Для этого можно использовать функции работы с датами.
-- PostgreSQL
SELECT
DATE_TRUNC('week', order_date) AS week_start,
COUNT(*) AS orders_count
FROM orders
GROUP BY DATE_TRUNC('week', order_date)
ORDER BY week_start;
-- MySQL
SELECT
YEARWEEK(order_date, 1) AS year_week,
COUNT(*) AS orders_count
FROM orders
GROUP BY YEARWEEK(order_date, 1)
ORDER BY year_week;
{}
🔎 Так можно быстро увидеть динамику заказов по неделям.
Аналогично работает и для month
, quarter
, year
.2679
16:02
27.08.2025
play_circleВидео недоступно для предпросмотра
🦆 Крутой интерактивный тренажёр по SQL
Учитесь писать SQL-запросы через игру:
- Пошаговые уроки с живым редактором — пишешь код и сразу видишь результат.
- Задачи и мини-квесты, где вы помогаете Дакберту пробираться сквозь потоки данных.
- Работает бесплатно, прямо в браузере или на телефоне.
🎮 Попробовать: https://dbquacks.com/
2202
14:11
29.08.2025
imageИзображение не доступно для предпросмотра
❌ Классический поиск по ключевым словам даёт ограниченные результаты.
В примере выше, такой селективный нашел только одно совпадение: "Machine Learning Overview".
✅ А вот pgvector ищет по смыслу и находит связанные концепции.
Пример запроса возвращает 5 релевантных документов:
– Machine Learning Overview
– Data Mining Basics
– Introduction to AI
– Deep Learning Guide
Семантический поиск > ключевого 🔥
@machinelearning_interview
2306
14:22
29.08.2025
💡 SQL: фильтрация по агрегатам с HAVING !!!
Иногда нужно отобрать только те группы, которые удовлетворяют условию по агрегату.
Для этого используется
HAVING
— он применяется после GROUP BY
.
SELECT
customer_id,
COUNT(order_id) AS orders_count,
SUM(amount) AS total_amount
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000
AND COUNT(order_id) >= 5;
{}
🔎 Так можно сразу выбрать клиентов, у которых больше 5 заказов и общая сумма превышает 1000.
HAVING работает с SUM(), COUNT(), AVG(), MAX() и другими агрегатами.2121
13:46
30.08.2025
Microsoft SQL Interview Question — разбор №2: Early Responders
Задача: найти топ-3 пользователей, которые чаще всего отвечали на сообщения в течение 5 минут в августе 2022.
Нужно вывести их sender_id и число «быстрых ответов».
Данные: таблица messages(message_id, sender_id, receiver_id, content, sent_date).
Подход:
— Фильтруем август полуинтервалом [2022-08-01, 2022-09-01).
— Группируем переписку по паре пользователей (conv_id = min(sender,receiver)–max(sender,receiver)).
— Используем LAG по conv_id, чтобы взять предыдущее сообщение в диалоге.
— Быстрый ответ — когда направление сменилось и прошло ≤ 5 минут.
Решение (T-SQL):
WITH aug AS (
SELECT message_id, sender_id, receiver_id, sent_date
FROM messages
WHERE sent_date >= '2022-08-01'
AND sent_date < '2022-09-01'
),
conv AS (
SELECT *,
CONCAT(
IIF(sender_id < receiver_id, sender_id, receiver_id), '-',
IIF(sender_id < receiver_id, receiver_id, sender_id)
) AS conv_id
FROM aug
),
seq AS (
SELECT *,
LAG(sender_id) OVER (PARTITION BY conv_id ORDER BY sent_date, message_id) AS prev_sender,
LAG(sent_date) OVER (PARTITION BY conv_id ORDER BY sent_date, message_id) AS prev_time
FROM conv
),
fast AS (
SELECT sender_id
FROM seq
WHERE prev_sender IS NOT NULL
AND sender_id <> prev_sender
AND DATEDIFF(minute, prev_time, sent_date) <= 5
)
SELECT TOP (3)
sender_id,
COUNT(*) AS fast_reply_count
FROM fast
GROUP BY sender_id
ORDER BY COUNT(*) DESC, sender_id;
{}
Вариант с учётом ничьих (возьмёт всех на 1-3 местах):
WITH aug AS (
SELECT message_id, sender_id, receiver_id, sent_date
FROM messages
WHERE sent_date >= '2022-08-01'
AND sent_date < '2022-09-01'
),
conv AS (
SELECT *,
CONCAT(
IIF(sender_id < receiver_id, sender_id, receiver_id), '-',
IIF(sender_id < receiver_id, receiver_id, sender_id)
) AS conv_id
FROM aug
),
seq AS (
SELECT *,
LAG(sender_id) OVER (PARTITION BY conv_id ORDER BY sent_date, message_id) AS prev_sender,
LAG(sent_date) OVER (PARTITION BY conv_id ORDER BY sent_date, message_id) AS prev_time
FROM conv
),
fast AS (
SELECT sender_id
FROM seq
WHERE prev_sender IS NOT NULL
AND sender_id <> prev_sender
AND DATEDIFF(minute, prev_time, sent_date) <= 5
),
agg AS (
SELECT sender_id, COUNT(*) AS fast_reply_count
FROM fast
GROUP BY sender_id
),
ranked AS (
SELECT sender_id, fast_reply_count,
DENSE_RANK() OVER (ORDER BY fast_reply_count DESC) AS rnk
FROM agg
)
SELECT sender_id, fast_reply_count
FROM ranked
WHERE rnk <= 3
ORDER BY fast_reply_count DESC, sender_id;{}
Почему так:
— Диапазон дат без функций сохраняет использование индекса по sent_date.
— LAG по conv_id гарантирует, что сравниваем соседние сообщения в одном диалоге.
— Проверяем смену направления (sender_id ≠ prev_sender) и порог по времени (≤ 5 минут).2002
16:04
31.08.2025
imageИзображение не доступно для предпросмотра
Better Database Design 💡
Чтобы повысить безопасность и упростить управление доступом, используйте логическую изоляцию с помощью схем.
Пример: создаём отдельную схему и выделяем для неё пользователя, у которого доступ только к своей области данных.
CREATE SCHEMA Orders;
CREATE SCHEMA Shipping;
-- Orders module can only access its schema
CREATE USER OrdersUser WITH DEFAULT_SCHEMA = Orders;
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::Orders TO OrdersUser;
-- Shipping module can only access its schema
CREATE USER ShippingUser WITH DEFAULT_SCHEMA = Shipping;
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::Shipping TO ShippingUser;
{}
⚡ Идея проста:
Создавайте отдельного пользователя для каждой схемы и используйте разные connection string в приложении. Это уменьшает риски и делает архитектуру чище.1847
16:05
02.09.2025
imageИзображение не доступно для предпросмотра
🗄️ SQL-редактор в браузере
Запускается как Go HTTP-сервер и открывается прямо в браузере.
Подходит для простых ETL-задач:
- перенос данных между базами
- работа с Excel-таблицами
- поддержка JSON и CSV
⚡ Удобный инструмент, когда нужно быстро и без лишних настроек управлять данными.
👉 https://github.com/a-le/db-portal
#golang
1638
16:04
04.09.2025
imageИзображение не доступно для предпросмотра
📊 Top 6 Python libraries for visualization — which one to use?
CodeCut подготовили обзор лучших инструментов для работы с графиками и визуализацией в Python.
Разбираем плюсы и минусы, где каждая библиотека раскрывается сильнее всего.
Полный список и разбор: https://codecut.ai/top-6-python-libraries-for-visualization-which-one-to-use/
🐍 Если работаете с данными и графиками в Python — must read!
1232
12:43
05.09.2025
close
С этим каналом часто покупают
Отзывы канала
keyboard_arrow_down
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
4.5
0 отзыва за 6 мес.
k
**lickoff.maks2014@******.ru
на сервисе с декабря 2024
21.01.202515:48
4
Приемлемая конверсия
Показать еще
Новинки в тематике
Лучшие в тематике
keyboard_double_arrow_left
shopping_cart
Каналов:
0
Подписчиков:
0
Просмотров:
lock_outline
Итого:
0.00₽
Перейти в корзину
Очистить корзину
Вы действительно хотите очистить корзину?
Вы снова сможете добавить каналы в корзину из каталога
Вы снова сможете добавить каналы в корзину из каталога
Очистить
Отменить
Комментарий