TGViewer
Channel Public Channel
SQL Ready | Базы Данных

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

@sql_ready

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

Cотрудничество: @energy_c

РКН: https://clck.ru/3QREBc
Subscribers
17.5K
Photos
1.4K
Videos
114
Links
767

Showing posts older than #997 · Back to latest

Older Posts 6 shown
Post #996 3.68K
GROUP BY с HAVING — фильтруем агрегированные данные!

Когда нужно сгруппировать данные и одновременно применить фильтр к агрегатам, обычный WHERE не работает. HAVING позволяет фильтровать уже агрегированные результаты.

Посчитаем количество заказов на каждого клиента:
SELECT CustomerID, COUNT(*) AS OrdersCount
FROM Orders
GROUP BY CustomerID;


Теперь выберем только тех клиентов, у кого больше 5 заказов:
SELECT CustomerID, COUNT(*) AS OrdersCount
FROM Orders
GROUP BY CustomerID
HAVING COUNT(*) > 5;


Можно комбинировать разные агрегаты, например сумма и среднее:
SELECT CustomerID, SUM(TotalAmount) AS Total, AVG(TotalAmount) AS AvgOrder
FROM Orders
GROUP BY CustomerID
HAVING SUM(TotalAmount) > 1000;


🔥 Но помните: фильтр с HAVING применяется после агрегации — сначала агрегируем, потом фильтруем.

➡️ SQL Ready | #практика
  • 🔥 15
  • ❤ 9
  • 👍 5
  • 🤝 1
Post #990 3.28K
🖥 Какие фильмы лидируют в каждом жанре по среднему рейтингу и количеству отзывов?

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

В этом посте:
• JOIN — объединяем фильмы, жанры и оценки в единую выборку.

• AVG + COUNT — считаем средний рейтинг и количество отзывов.

• RANK + PARTITION BY — ранжируем фильмы внутри каждого жанра.


В итоге получаем топ фильмов по каждому жанру с учётом рейтинга и популярности.

➡️ SQL Ready | #задача
  • ❤ 19
  • 🔥 9
  • 👍 4
  • 🤝 2
Post #985 2.85K
🖥 Напоминалка по группировке и агрегатам PRO!

Приёмы для построения сводных таблиц прямо в SQL: от обычных группировок до динамических комбинаций измерений. В шпаргалке собраны примеры с ROLLUP, CUBE, GROUPING SETS, а также полезные функции GROUPING() и HAVING для тонкой аналитики.

➡️ SQL Ready | #шпора
  • 👍 17
  • ❤ 7
  • 🔥 6
  • 🤝 3
Post #983 2.64K
Сравнение с предыдущей строкой с LAG()

Хотите узнать, как меняется значение от предыдущей записи? В аналитике это частая задача, и решается с помощью функции LAG()

Создадим таблицу:
CREATE TABLE sales (
id INT,
customer VARCHAR(100),
amount DECIMAL(10,2)
);


Запрос с LAG():
SELECT id, customer, amount,
LAG(amount, 1) OVER (
PARTITION BY customer
ORDER BY id
) AS prev_amount
FROM sales;


Пример для клиента с 3 заказами:
id | customer | amount | prev_amount
------------------------------------
10 | Ivanov | 500 | NULL
12 | Ivanov | 700 | 500
15 | Ivanov | 650 | 700


Функция LAG() берёт значение из предыдущей строки в пределах группы. NULL появляется, если предыдущей строки нет. Это позволяет быстро вычислять разницу между заказами:
SELECT id, customer, amount,
amount - LAG(amount, 1) OVER (PARTITION BY customer ORDER BY id) AS diff
FROM sales;


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

➡️ SQL Ready | #практика
  • ❤ 16
  • 👍 8
  • 🔥 7
Post #977 2.65K
🖥 Анализируем сезонность продаж!

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

В этой задаче:
• EXTRACT(MONTH FROM order_date) — чтобы выделить месяц заказа.

• EXTRACT(DOW FROM order_date) — чтобы выделить день недели.

• COUNT(*) + GROUP BY — считаем количество заказов по каждому месяцу и дню недели.

• ORDER BY — сортируем результат для наглядного анализа.


В итоге получаем инструмент для планирования продаж и оптимизации ресурсов.

➡️ SQL Ready | #задача
  • 👍 16
  • 🔥 8
  • ❤ 5
  • 🤝 1
Post #974 2.32K
🖥 Сегодня разбираем две полезные функции:

1. LEAST(a, b, c, …) — возвращает минимальное значение из списка аргументов. Полезно, когда нужно быстро определить наименьший показатель среди нескольких столбцов или метрик.

2. GREATEST(a, b, c, …) — возвращает максимальное значение из списка аргументов. Используется для поиска наибольшего значения среди нескольких колонок или показателей.

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

➡️ SQL Ready | #метод
  • ❤ 20
  • 👍 13
  • 🔥 6
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →