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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/sql_ready
Download Telegram
🖥 Оконные функции — аналитика поверх обычных запросов!

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

В этом гайде:
Средние значения по всей таблице и внутри групп.

Использование PARTITION BY для сегментации.

Ранжирование с RANK() и сортировкой.


Этот инструмент часто упрощает логику запросов и снижает нагрузку.

➡️ SQL Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥85🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
😎 Sololearn — удобный способ освоить SQL и не только!

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

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

➡️ SQL Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍125🔥5🤝2
Топ-N по каждой группе с оконными функциями!

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

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


Запрос для топ-2 заказов на клиента:
SELECT id, customer, amount
FROM (
SELECT id, customer, amount,
ROW_NUMBER() OVER (
PARTITION BY customer
ORDER BY amount DESC
) AS rnk
FROM sales
) t
WHERE rnk <= 2;


Функция ROW_NUMBER() нумерует строки внутри каждой группы. Если у клиента есть пять заказов, они сортируются по убыванию суммы, и первые два остаются.

Пример для клиента с 5 заказами:
id | customer | amount
-----------------------
12 | Ivanov | 980.00
15 | Ivanov | 750.00
-- остальные (3 строки) отсеялись


🔥 Важно понимать: ROW_NUMBER() всегда уникален. Даже если два заказа на одинаковую сумму, один попадёт в выборку, а другой — нет. Если же нужны все одинаковые значения, лучше использовать RANK() или DENSE_RANK()

➡️ SQL Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍97
5👍5🔥5
Что же выведет консоль?
Anonymous Quiz
36%
A
17%
B
33%
C
13%
D
12👍10🔥5
🖥 Разберем методы работы со строками!

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

➡️ SQL Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍9🔥5🤝3
This media is not supported in your browser
VIEW IN TELEGRAM
👍 SQL-Ultimate-Course — это полный путь от основ до продвинутых запросов!

Реальные примеры SQL-запросов, разбор оптимизаций и живые проекты - всё собрано в одном репозитории. Углубляйся в работу с базами данных, учись мыслить как data-профессионал и строй SQL-решения, которые работают.

Оставляю ссылочку: Github 📱


➡️ SQL Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍137🔥6🤝1
🖥 Когда люди покупают чаще всего? Найдём часы, пиков покупок!

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

В этом посте:
EXTRACT(HOUR FROM …) — получаем час из order_date.

GROUP BY + COUNT — считаем количество заказов в каждом часе.

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


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

➡️ SQL Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥126🤝1
😁237👍7👎1🔥1