SQL Ready | Базы Данных
15.4K subscribers
1.21K photos
66 videos
2 files
583 links
Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

РКН: https://clck.ru/3QREBc

Реклама на бирже: https://telega.in/c/sql_ready
Download Telegram
🖥 Разбираем методы слияния и объединения данных!

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

➡️ SQL Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥93🤝2
UPSERT: вставляем или обновляем запись!

Нередко требуется добавить данные без риска дубликата. Реализуем UPSERT — вставка при отсутствии и обновление при конфликте.

Задаём таблицу:
CREATE TABLE users (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
email TEXT UNIQUE NOT NULL,
login_count INT NOT NULL DEFAULT 0
);


Пробная вставка:
INSERT INTO users (email, login_count)
VALUES ('alice@mail.com', 1);


UPSERT при конфликте (увеличиваем счётчик и сразу возвращаем результат):
INSERT INTO users AS u (email, login_count)
VALUES ('alice@mail.com', 1)
ON CONFLICT (email) DO UPDATE
SET login_count = u.login_count + EXCLUDED.login_count
RETURNING email, login_count;


Результат:
email           | login_count
----------------+------------
alice@mail.com | 2


🔥 Такой приём избавляет от дубликатов и делает вставку надёжной.

➡️ SQL Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1610🔥5🤝1
🖥 Анализ опоздавших и сорвавшихся доставок!

Срок обещан один, а товар приехал позже - это сразу удар по доверию клиента и показателям сервиса.

Сегодня в задаче:
Сравним обещанную дату доставки с фактической;

Посчитаем количество дней задержки;

Вернём список всех заказов с опозданием.


В результате получаем инструмент для контроля логистики: видно, где сбои и на сколько дней выходят из графика. Это основа для улучшения SLA и переговоров с перевозчиками.

➡️ SQL Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍179🔥5🤝1
🖥 Условные выражения в фильтрации!

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

➡️ SQL Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍166🔥6🤝2
CHECK — встроенный контроль качества данных!

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

Пример: таблица заказов
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT NOT NULL,
total_amount DECIMAL(10,2) NOT NULL CHECK (total_amount >= 0),
status VARCHAR(20) NOT NULL CHECK (status IN ('new', 'pending', 'shipped'))
);


Попытка вставить некорректное значение:
INSERT INTO orders VALUES (1, 101, -500, 'new');
-- ERROR: check constraint violated


Можно добавлять бизнес-правила:
ALTER TABLE orders
ADD CONSTRAINT chk_min_total CHECK (total_amount >= 100);


Но если в таблице уже есть строки с total_amount < 100, СУБД выдаст ошибку.

🔥 Так что, CHECK — это встроенный «охранник» базы, предотвращающий ошибки ещё до попадания данных в аналитику или отчёты.

➡️ SQL Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍8🔥7
🖥 Анализ сильнейших героев в MMORPG!

Сегодня напишем SQL-запрос, который покажет, какие персонажи выигрывают чаще всего. Пригодится, чтобы балансировать PvP, выявлять лучших героев и держать мету игры в здоровом состоянии.

В этой задаче:
Считаем количество боёв и побед каждого героя;

Рассчитываем процент побед;

Строим топ-5 персонажей.


В итоге получаем инструмент для аналитики боёв и корректировки баланса игры.

➡️ SQL Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
23👍6🔥6