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

Автор: @energy_it

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

Реклама на бирже: https://telega.in/c/sql_ready
Download Telegram
🖥 Анализируем музыкальные тренды!

Хотим узнать, какие жанры и исполнители сейчас популярны, и в какие дни они слушаются чаще всего. Это помогает прогнозировать и подобрать рекомендации для плейлистов.

В этом посте:
EXTRACT(DOW FROM play_time) — выделяем день недели прослушивания.

• EXTRACT(HOUR FROM play_time) — смотрим, в какие часы включают музыку.

• COUNT(*) + GROUP BY — считаем, сколько треков играло по жанрам и времени.

• ORDER BY — сортируем, чтобы увидеть пики популярности.


В итоге получаем SQL-инструмент для поиска «вирусных» жанров и артистов.

➡️ SQL Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍125🤝4
Проверяем дубликаты и считаем уникальные значения!

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

Создадим таблицу пользователей:
CREATE TABLE users (
user_id INT,
email VARCHAR(100)
);

INSERT INTO users VALUES
(1, 'alice@mail.com'),
(2, 'bob@mail.com'),
(3, 'alice@mail.com'),
(4, 'carol@mail.com'),
(5, 'bob@mail.com');


Запрос для выявления дубликатов и подсчёта уникальных email:
SELECT email, COUNT(*) AS cnt,
CASE WHEN COUNT(*)>1 THEN 'Duplicate' ELSE 'Unique' END AS status
FROM users
GROUP BY email;


Функция COUNT() + GROUP BY группирует одинаковые значения, а CASE сразу классифицирует их как дубликаты или уникальные.

Результат:
email           | cnt | status
-----------------------------
alice@mail.com | 2 | Duplicate
bob@mail.com | 2 | Duplicate
carol@mail.com | 1 | Unique


🔥 Это простой способ контролировать качество данных, выявлять ошибки и готовить отчёты для команды.

➡️ SQL Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥136🤝1
🖥 Накопительные итоги — running totals без циклов!

Хотите видеть, как растут продажи день за днём или отслеживать баланс по пользователям? С функциями SQL можно посчитать нарастающий итог прямо в одном запросе.

Сегодня в посте:
Считаем общий running total по датам.

Считаем накопительные суммы отдельно для каждого пользователя.

Контролируем диапазон расчёта с ROWS BETWEEN.


Это делает SQL-запросы компактными, наглядными и готовыми к использованию в отчётах.

➡️ SQL Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
18👍10🔥7🤝3
🖥 Транзакции и блокировка строк!

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

Создадим таблицу счетов:
CREATE TABLE Accounts (
id INT PRIMARY KEY,
name VARCHAR(50),
balance DECIMAL(10,2)
);


Начинаем транзакцию и блокируем строку:
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -- защита от грязных чтений
BEGIN;

SELECT balance FROM Accounts
WHERE id = 1 FOR UPDATE; -- эксклюзивная блокировка строки


Выполняем перевод и фиксируем результат:
UPDATE Accounts SET balance = balance - 500 WHERE id = 1;
UPDATE Accounts SET balance = balance + 500 WHERE id = 2;
COMMIT; -- сохраняем изменения


Откат транзакции:
ROLLBACK; -- можно вызвать до COMMIT при ошибке


🔥 FOR UPDATE ставит row-level exclusive lock: другие транзакции ждут, пока вы завершите свою.

➡️ SQL Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍159
🖥 Функции для работы с массивами!

В этой шпаргалке собраны 8 методов для сбора, развертывания, подсчёта и преобразования массивов и строк. Короткие примеры помогут быстро ориентироваться в аналитических запросах и готовить данные для отчётов, API или BI-инструментов.

➡️ SQL Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍12🔥7🤝2
👋🏼 Приветствую!

Ровно год назад я создал этот канал и не только (не важно что 12 июля, главное первый пост был 8 сентября 😁).

Спасибо всем кто подписан на мой склчик, особенно благодарю тех, кто ставит реакции.

🖥 За это время контент намного стал лучше, с таких постов, до таких как сейчас.

Но кстати всё равно, раньше тоже круто было, можете перейти в закреп и там посмотреть на старые постики.

В общем, поздравляю сам себя с годовщиной! 🥳
Please open Telegram to view this post
VIEW IN TELEGRAM
732👍20🔥17
👍10🔥8🤝51
Что же выведет консоль?
Anonymous Quiz
45%
A
9%
B
32%
C
14%
D
👍20🔥9🤝5👎2