sql_ready | Unsorted

Telegram-канал sql_ready - SQL Ready | Базы Данных

7786

Авторский канал про Базы Данных и SQL Ресурсы, гайды, задачи, шпаргалки. Информация ежедневно пополняется! Автор: @energy_it

Subscribe to a channel

SQL Ready | Базы Данных

🖥 SQL-генерация полного набора домино!

Сегодня соберём 28 уникальных костяшек домино — только силами SQL. Без циклов и хранимых процедур, используя лишь CROSS JOIN и простое условие.

В этом посте:

Генерируем все пары чисел от 0 до 6;

Фильтруем зеркальные комбинации;

Получаем финальный набор костяшек в правильном порядке.


Такой приём пригодится не только для домино — он полезен в задачах комбинаторики, генерации тестовых данных и построения матриц связей.

➡️ SQL Ready | #задача

Читать полностью…

SQL Ready | Базы Данных

Оптимистическая блокировка: обновляем данные без конфликтов!

Когда несколько пользователей редактируют одну запись, можно избежать конфликтов с помощью оптимистической блокировки — без явного FOR UPDATE.

Создаём таблицу с версией записи:

CREATE TABLE products (
id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
name TEXT,
price DECIMAL(10,2),
version INT DEFAULT 1 NOT NULL
);


Выбираем запись для редактирования:
SELECT id, name, price, version
FROM products
WHERE id = 1;


Обновляем с проверкой версии:
UPDATE products
SET price = 199.99,
version = version + 1
WHERE id = 1
AND version = 1;


Если другой пользователь уже изменил эту строку, UPDATE не затронет ни одной записи — значит, версия изменилась, и данные устарели.

Приложение должно проверить, что rows_affected = 1, и при необходимости повторить попытку или показать сообщение об ошибке.

Проверяем результат:
SELECT * FROM products WHERE id = 1;


🔥 Такой подход предотвращает «потерю обновлений» без длительных блокировок чтения и подходит для большинства современных СУБД.

➡️ SQL Ready | #практика

Читать полностью…

SQL Ready | Базы Данных

🖥 Работа с JSON в PostgreSQL!

В этой шпаргалке собраны основные приёмы работы с JSON и JSONB в PostgreSQL: доступ к элементам, извлечение вложенных данных, обновление значений, создание объектов, раскрытие массивов, форматирование и проверка вхождения. Эти инструменты позволяют удобно хранить и обрабатывать структурированные данные прямо в базе.

➡️ SQL Ready | #шпора

Читать полностью…

SQL Ready | Базы Данных

🖥 Корреляция: как связаны просмотры и продажи!

SQL умеет не только суммировать и фильтровать данные, он способен показывать насколько сильно одно влияет на другое.

В этом посте:

Находим средние значения метрик;

Считаем ковариацию и дисперсии;

Собираем финальную формулу корреляции прямо в запросе.


Это помогает быстро проверять гипотезы, оценивать результаты и находить зависимости.

➡️ SQL Ready | #задача

Читать полностью…

SQL Ready | Базы Данных

🖥 Временные таблицы и переменные в SQL Server!

В этой шпаргалке собраны основные приёмы работы с временными данными в SQL Server: создание, заполнение, очистка и удаление временных таблиц, а также использование табличных переменных. Эти методы помогают выполнять промежуточные расчёты, строить отчёты и оптимизировать сложные запросы без изменения основной схемы базы.

➡️ SQL Ready | #шпора

Читать полностью…

SQL Ready | Базы Данных

Транзакция — не просто “begin и commit”, а ещё и способ управлять атомарностью и блокировками!

Начинаешь с BEGIN — всё, что дальше, идёт как единое целое:

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;


Если что-то падает, делай rollback, и база возвращается к исходному состоянию.

Не забывай: каждая открытая транзакция держит блокировки. Чем дольше она живёт, тем выше шанс конфликтов.

Контролируй уровень изоляции - баланс между скоростью и безопасностью:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;


🔥 Производительность БД начинается с правильного управления транзакциями и блокировками.

➡️ SQL Ready | #совет

Читать полностью…

SQL Ready | Базы Данных

❤️ CodeAbbey — тренажёр алгоритмического мышления!

Сайт с огромной коллекцией задач по программированию, от самых простых до тех, что реально заставят подумать.
Учиться можно на абсолютно любом языке. Отличный способ подтянуть логику, научиться писать аккуратный код и подготовиться к собесам.

📌 Оставляю ссылочку: codeabbey.com

➡️ SQL Ready | #ресурс

Читать полностью…

SQL Ready | Базы Данных

GENERATE_SERIES — быстро создаём последовательности чисел и дат!

В SQL часто требуется сгенерировать последовательность чисел или дат для отчётов, тестовых данных или анализа временных рядов.

Вместо ручного создания таблиц или массивов можно использовать встроенную функцию GENERATE_SERIES:

SELECT * 
FROM generate_series(1, 10) AS number;


Функция отлично работает и с датами, позволяя создавать последовательность с нужным шагом или произвольный интервал:
SELECT * 
FROM generate_series('2025-01-01'::date, '2025-01-07'::date, '1 day') AS day;


Можно использовать вместе с JOIN для заполнения пропусков в таблицах:
SELECT d.day, COALESCE(o.total, 0) AS total_orders
FROM generate_series('2025-01-01'::date, '2025-01-07'::date, '1 day') AS d(day)
LEFT JOIN orders o ON o.order_date = d.day;


🔥 Подходит для аналитики, построения сквозных временных рядов и подготовки тестовых наборов данных без лишних ручных операций.

➡️ SQL Ready | #практика

Читать полностью…

SQL Ready | Базы Данных

Программисты из Telegram создали сильнейшие IT- каналы

🐍 Ghostly Python - автоматизируй всё, что можешь. Боты, скрипты, парсеры, утилиты - делаем Python простым и полезным. Уверенный старт для новичков и не только.

☕️ Easy Java - Java без боли. От основ до фреймворков. Просто, понятно и по делу. Если хочешь реально понять язык - тебе сюда.

😎 IT Syndicate - главный хаб для тех, кто живёт IT. GameDev, InfoSec, Frontend, DevOps, AI и многое другое. Готовь мозг, тут будет жарко.

🧡 Ghostly Frontend - фронтенд без лишнего шума. HTML, CSS, JavaScript, React, Vue — всё, что нужно, чтобы создавать быстрые и красивые интерфейсы.

Читать полностью…

SQL Ready | Базы Данных

🖥 Разбираемся с MATCH_RECOGNIZE — поиском паттернов прямо!

Этот инструмент позволяет находить последовательности событий: рост цены и её падение, пропуски активности пользователей.

Что важно знать:

PATTERN описывает последовательность (например, рост => падение)

DEFINE задаёт правила для каждого шага;

Можно строить аналитику для временных рядов, активности, безопасности.


MATCH_RECOGNIZE делает SQL гибким и превращает его в язык сценариев — без циклов и внешних процедур.

➡️ SQL Ready | #гайд

Читать полностью…

SQL Ready | Базы Данных

Распределяем события по типам — GROUP BY + агрегаты!

Когда нужно понять, какие типы событий встречаются чаще, обычный WHERE не помогает — нужна агрегация.

Посчитаем количество каждого типа события:

SELECT EventType, COUNT(*) AS EventCount
FROM Logs
GROUP BY EventType;


Теперь выберем только популярные типы с более чем 100 событиями:
SELECT EventType, COUNT(*) AS EventCount
FROM Logs
GROUP BY EventType
HAVING COUNT(*) > 100;


Можно сразу добавить среднее время отклика для каждого типа:
SELECT EventType,
COUNT(*) AS EventCount,
AVG(ResponseTime) AS AvgResponse
FROM Logs
GROUP BY EventType
HAVING COUNT(*) > 100;


🔥 Важно: сначала агрегируем по типу события, потом фильтруем по количеству или другим метрикам — так легко выявлять «тяжёлые» или проблемные категории.

➡️ SQL Ready | #практика

Читать полностью…

SQL Ready | Базы Данных

🖥 Псевдоколонки — аналитика «рядом с рядком»

С помощью ROW_NUMBER, RANK, DENSE_RANK, NTILE и PERCENT_RANK можно добавлять к каждой строке информацию о её позиции, ранге или квантиле прямо в запросе.

В этом гайде:

Присвоение уникальных номеров строкам с ROW_NUMBER();

Разбор разницы между RANK() и DENSE_RANK() при одинаковых значениях;

Сегментация с NTILE() и относительное положение с PERCENT_RANK().


Это позволяет строить топ-N, сегментировать клиентов и анализировать данные.

➡️ SQL Ready | #гайд

Читать полностью…

SQL Ready | Базы Данных

☕️ Познавательная статья с Хабра, в которой автор реализует полноценный SQL‑пайплайн когортного анализа!

В этой статье:
• Определение исходной точки на примере таблицы заказов
• Шаблон построения когорт и связывание с заказами через CTEs
• Разбор edge-кейсов, построение LTV по когортам и RFM-анализ с сегментацией


🔊 Продолжай чтение на Habr!


SQL Ready | #статья

Читать полностью…

SQL Ready | Базы Данных

☕️ YeaHub — база знаний по всем IT-направлениям!

Здесь собрана огромная база реальных вопросов по бэкенду, DevOps, Data Science и другим направлениям. Всё структурировано по темам и приближено к формату собеседований в компаниях. Это именно тот ресурс, который нужно держать под рукой!

📌 Оставляю ссылочку: yeahub.ru

➡️ SQL Ready | #сайт

Читать полностью…

SQL Ready | Базы Данных

⏹️Новая специализация, о которой почти никто не знает: проще вход, ниже конкуренция, выше чеки

В архитектурной сфере катастрофически не хватает разработчиков. Проектировщики и инженеры нуждаются в плагинах для софта, а программистов, которые умеют их писать, — единицы. Конкуренция минимальна, спрос растет, а чеки за проекты выше, чем в классическом аутсорсе.

▶️Освоив Revit API, вы сможете быстро войти в нишу, где каждый навык напрямую конвертируется в деньги.

На курсе «Программирование в Autodesk Revit» от EdTech-платформы STEMPS вы научитесь:

➡️Писать плагины и инструменты на C# для инженеров
➡️Автоматизировать рутинные процессы и проверки моделей
➡️Создавать востребованный софт для архитектурных и проектных бюро

👤Автор курса — Дмитрий Смирнов, CTO DynamicLabs, STEMPS, Atomtech, Plancy. Разрабатывал системы автоматизации и SaaS-системы для компаний на 700+ сотрудников.

🗓 Старт курса — 23 сентября.

📍Студенты получат документ о повышении квалификации.

🔥Успейте записаться на курс со скидкой 10%:
https://stemps.ru/

Читать полностью…

SQL Ready | Базы Данных

🖥 SQLHUB – с помощью понятных картинок и коротких видео авторы объясняют сложные концепции и учат профессиональному подходу в работе с БД.

💼 Data Jobs - нужна работа? Здесь отборные вакансии и фриланс проекты по работе с базами данных, sql и не только.

🧠 Machine learning - показываем на примере как использовать AI, который может генерировать готовые базы данных, код, разбираем все что нужно знать в области ИИ.

🖥 SQL задачи - решайте отборные задачи и качайте скилы.

📚 Библиотека - мы создали канал с книгами по SQL и залили туда наверное самую большую подборку книг по SQL. Около 200 книг бесплатно.

🔝 А здесь мы собрали целую кладезь полезных SQL ресурсов для прокачки

Читать полностью…

SQL Ready | Базы Данных

🖥 Контроль целостности данных!

С помощью оконных функций SQL можно находить разрывы во временных рядах, пропущенные интервалы и повторяющиеся записи.

Сегодня в гайде:

Выявляем пропущенные минуты и события;

Находим дубликаты временных меток;

Контролируем качество потоков и ETL прямо в запросах.


В продакшн-аналитике важно не только считать, но и замечать, где данные пропали или задублировались.

➡️ SQL Ready | #гайд

Читать полностью…

SQL Ready | Базы Данных

Хочешь узнать, когда именно заказ сменил статус?

Используй LAG(), она возвращает значение из предыдущей строки в рамках группы:

LAG(status) OVER (PARTITION BY order_id ORDER BY updated_at)


Сравни текущее значение с предыдущим:
status <> LAG(status) OVER (...)


Получается булево поле — true, когда статус поменялся.

Хочешь вывести только моменты изменения, просто оберни в подзапрос:
SELECT *
FROM (
SELECT order_id, status, updated_at,
status <> LAG(status) OVER (PARTITION BY order_id ORDER BY updated_at) AS changed
FROM order_status_log
) t
WHERE changed;


🔥 Это основа для аудита изменений и аналитики событийных логов.

➡️ SQL Ready | #совет

Читать полностью…

SQL Ready | Базы Данных

WITHIN GROUP — агрегаты с управляемым порядком!

Обычные агрегаты в SQL не гарантируют порядок входных данных, что важно для медиан и упорядоченных списков. Конструкция WITHIN GROUP решает это, задавая порядок элементов внутри агрегатной функции.

Пример: соберём список продуктов по категории в порядке убывания продаж:

SELECT
category_id,
LISTAGG(product_name, ', ') WITHIN GROUP (ORDER BY total_sales DESC) AS top_products
FROM product_sales
GROUP BY category_id;


В отличие от ARRAY_AGG(product_name ORDER BY ...), синтаксис WITHIN GROUP используется для ordered-set функций, а не для любых агрегатов.

Пример вычисления порогового значения 90% по сумме заказов по регионам:
SELECT
region_id,
PERCENTILE_CONT(0.9) WITHIN GROUP (ORDER BY total_amount) AS p90_sales
FROM orders
GROUP BY region_id;


PERCENTILE_CONT() и PERCENTILE_DISC() позволяют вычислять медиану или любое процентное значение без оконных функций.

Медиана чека по каждому магазину:
SELECT
store_id,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY total_amount) AS median_check
FROM orders
GROUP BY store_id;


Такой подход может быть проще и эффективнее, чем использование NTILE() или RANK() в оконных выражениях.

🔥 Используйте WITHIN GROUP, когда важен порядок в агрегатах.

➡️ SQL Ready | #практика

Читать полностью…

SQL Ready | Базы Данных

🖥 Пишем мини-чат-бота!

Сегодня создаём простого бота, который “понимает” текст запроса и отвечает на сообщения пользователя.

В этом посте:

• Храним шаблоны фраз и ответы в таблице responses;

• Используем ILIKE, чтобы находить ключевые слова в сообщении;

• Возвращаем лучший ответ по приоритету совпадений.


Приём показывает, что SQL способен работать не только с числами, но и с текстом, превращаясь в мини-экспертную систему.

➡️ SQL Ready | #задача

Читать полностью…

SQL Ready | Базы Данных

USING — способ объединять таблицы в SQL!

Когда таблицы имеют одинаковые ключи, USING помогает сократить код и избежать дублирования столбцов.

Объединим заказы и клиентов по общему полю:

SELECT *
FROM orders
JOIN customers USING (customer_id);


То же самое через ON выглядело бы чуть длиннее и менее лаконично:
SELECT *
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id;


С USING SQL сам убирает дубликаты полей, оставляя одно customer_id в результирующем наборе.

Можно соединять и по нескольким ключам:
SELECT *
FROM orders
JOIN shipments USING (order_id, customer_id);


Пример из аналитики: посчитаем сумму заказов по каждому клиенту:
SELECT customer_id,
c.customer_name,
SUM(o.amount) AS total_amount
FROM customers c
JOIN orders o USING (customer_id)
GROUP BY customer_id, c.customer_name
HAVING SUM(o.amount) > 1000
ORDER BY total_amount DESC;


🔥 Используйте USING, когда имена ключей совпадают — это приём, который улучшает читаемость и уменьшает вероятность ошибок.

➡️ SQL Ready | #практика

Читать полностью…

SQL Ready | Базы Данных

🖥 Аналитические (оконные) функции Oracle!

В этой шпаргалке собраны основные оконные функции Oracle SQL, применяемые для аналитики, ранжирования и работы с порядком строк без свёртки данных. Они вычисляют значения в контексте "окна" — набора строк, связанных с текущей строкой. Это мощный инструмент для аналитических отчётов и сложных выборок.

➡️ SQL Ready | #шпора

Читать полностью…

SQL Ready | Базы Данных

🖥 Находим пробки в городе с помощью!

В этой задаче соберём запрос, который определит «пробки» на дорогах: места, где машины движутся слишком медленно.

Что делаем:

Считаем среднюю скорость по каждому участку дороги за последние 10 минут;

Отмечаем «пробку», если средняя скорость падает ниже 15 км/ч;

Определяем топ-участки, где движение затруднено чаще всего.


Такой анализ помогает не только в транспорте: его можно использовать и в бизнесе — для поиска «узких мест» в процессах или системах.

➡️ SQL Ready | #задача

Читать полностью…

SQL Ready | Базы Данных

😎 Code — кладезь знаний по SQL на русском!

Это не просто справочники - это структурированный учебник и тренажёр в одном месте. Ты найдёшь понятные теоретические объяснения и сразу приступишь к практике: каждая тема содержит примеры и задачи, которые можно решать прямо на сайте.

📌 Оставляю ссылочку: code.mu

➡️ SQL Ready | #ресурс

Читать полностью…

SQL Ready | Базы Данных

Айтишники зарабатывают ДОХ#Я 💵💵

Не все, конечно, а только самые хваткие.

Кто с холодной головой и чёткой архитектурой внутри.

💼 Рынок сейчас покупает НЕ знания.

Он покупает тех, кто умеет собрать их в работающую модель

Бизнес-архитектор — канал о том, как люди в IT, бизнесе и на фрилансе собирают из своих знаний доход в несколько тысяч $ в месяц.

Подпишись и превращай знания в результат: ⤵️
/channel/+jONJxjgUpWs3N2Vi
/channel/+jONJxjgUpWs3N2Vi

Читать полностью…

SQL Ready | Базы Данных

☕️ Чуть не забыл, знали, что каждый 256-й день в году отмечается День программиста?

И как раз сегодня — этот самый день!

Кстати, 256 не с проста:

Это 2 в степени 8, то есть максимальное количество значений, которые может хранить один байт — основа работы компьютеров.

В невисокосный год праздник выпадает на 13 сентября, а в високосный — на 12-е.


Так что, поздравляю всех программистов! ❤️

Читать полностью…

SQL Ready | Базы Данных

«О безопасности подумаем позже» — так рассуждают многие специалисты в погоне за быстрым релизом. Но такая спешка создает слабые места в коде, которые рано или поздно приводят к инцидентам.

18 сентября на техническом вебинаре «Когда разработчику нужно задуматься об ИБ? Observability безопасности» обсудим:

🛡 Ред флаги в работе программистов. 
🛡 Обеспечение безопасности на каждом этапе SDLC.
🛡 План действий для непосредственного первого звена в цикле разработки.

Также покажем, как платформа GMonit позволяет выстроить непрерывный процесс мониторинга приложений и находить уязвимости.

⏰ Время встречи: 17:00–18:00 (Мск)

🔗 Регистрация по ссылке!

Читать полностью…

SQL Ready | Базы Данных

🖥 Анализируем игровые ставки и выигрыши!

Сегодня разберём мини-задачу по геймификации: соберём отчёт по ставкам и выигрышам игроков. Поймем баланс игры, выявим активных участников и посчитаем прибыль системы.

В этой задаче:

Считаем общий объём ставок и выигрышей;

Определяем топ-5 игроков и их «удачливость»;

Смотрим итоговый доход системы.


Такой приём можно использовать не только в играх, но и в любых системах с «ставками» и «возвратами»

➡️ SQL Ready | #задача

Читать полностью…

SQL Ready | Базы Данных

📂 Напоминалка по базам данных!

Например, реляционные SQL-базы обеспечивают строгую структуру и транзакционность (ACID), а NoSQL-решения предлагают гибкость, горизонтальное масштабирование и высокую доступность.

На картинке — основные классы баз данных и их подвиды.

Сохрани, чтобы не забыть!

➡️ SQL Ready | #ресурс

Читать полностью…

SQL Ready | Базы Данных

🖥 Рассмотрим методы работы с NULL

В этой шпаргалке собраны ключевые приёмы для работы с пропущенными значениями: проверка, замена, защита от ошибок, гибкая логика условий и поиск экстремальных значений. Они применяются при аналитике, подготовке отчётов и построении корректных продакшн-запросов.

➡️ SQL Ready | #шпора

Читать полностью…
Subscribe to a channel