Сегодня разберём практический кейс, который поможет понять, кто на каких проектах задействован, а кто пока свободен. Такой анализ полезен для планирования ресурсов и управления командой.
В этой задаче:
• С помощью LEFT JOIN покажем всех сотрудников, даже если у них нет проекта.
• CASE позволит красиво обработать пустые проекты.
• Посчитаем количество дней участия с DATEDIFF.
• Сортируем результат по стажу в проекте.
Помогает быстро выявлять свободные и загруженные ресурсы, а также отслеживать активность сотрудников на проектах.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤22👍12🔥5🤝2👎1
Он последовательно разбирает фундаментальные темы работы с данными: основы реляционных БД и SQL, структуру и синтаксис запросов (SELECT/FROM/WHERE, JOIN, GROUP BY), модели транзакций и ACID с уровнями изоляции и MVCC, индексы и нормальные формы и многое другое.
Ссылочка на плейлист: YouTube🖤
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤8🔥6🤝1
Они позволяют применять агрегаты к набору строк, не схлопывая таблицу. Это даёт аналитику прямо в запросах: от кумулятивных сумм до ранжирования.
В этом гайде:
• Средние значения по всей таблице и внутри групп.
• Использование PARTITION BY для сегментации.
• Ранжирование с RANK() и сортировкой.
Этот инструмент часто упрощает логику запросов и снижает нагрузку.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥8❤5🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
Вместо сухих лекций - интерактивные задания прямо в браузере или приложении. Сразу пишешь запросы, видишь результат и получаешь объяснение ошибок. Подходит как новичкам, так и тем, кто хочет освежить SQL-навыки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤5🔥5🤝3
Топ-N по каждой группе с оконными функциями!
Хотите получить несколько лучших элементов в каждой категории? Это типичная задача аналитики, и решается она с помощью оконных функций.
Создадим таблицу:
Запрос для топ-2 заказов на клиента:
Функция
Пример для клиента с 5 заказами:
🔥 Важно понимать:
➡️ SQL Ready | #практика
Хотите получить несколько лучших элементов в каждой категории? Это типичная задача аналитики, и решается она с помощью оконных функций.
Создадим таблицу:
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()
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍9❤7
❤13👍10🔥5
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍9🔥5🤝4