🙂 8 SQL-запросов, которые чаще всего использует аналитик

1. Работа с датами

SELECT order_id, customer_id, order_date FROM orders WHERE order_date >= DATEADD(DAY, -14, GETDATE());

Выбирает все заказы за последние 14 дней. Когда нужно: продажи за неделю, активность пользователей, периодические отчёты

2. GROUP BY + HAVING

SELECT department, COUNT() AS employees_count FROM employees GROUP BY department HAVING COUNT() >= 5; Группирует данные и оставляет только отделы, где ≥ 5 сотрудников. Когда нужно: посчитать клиентов/заказы, сравнить показатели по группам

3. JOIN

SELECT o.order_id, c.customer_name FROM orders o INNER JOIN customers c ON o.customer_id = c.customer_id;

Объединяет данные из двух связанных таблиц. Когда нужно: клиенты + заказы, добавить атрибуты товара, собрать данные из нескольких таблиц

4. Подзапрос

SELECT product_name, price FROM products WHERE price > ( SELECT AVG(price) FROM products );

Находит товары, цена которых выше средней. Когда нужно: значения выше среднего, сравнение с агрегатом, сложная фильтрация

5. Оконные функции

SELECT customer_id, order_amount, ROW_NUMBER() OVER( PARTITION BY customer_id ORDER BY order_amount DESC ) AS order_rank FROM orders;

Присваивает номер каждому заказу внутри группы клиентов. Когда нужно: самый дорогой заказ, рейтинг клиентов, ТОП продаж

6. CASE WHEN

SELECT customer_name, CASE WHEN total_orders >= 20 THEN ‘VIP’ WHEN total_orders >= 10 THEN ‘Regular’ ELSE ‘New’ END AS customer_type FROM customers;

Присваивает категорию клиенту по количеству заказов. Когда нужно: сегментация клиентов, категоризация товаров, статусы

7. WITH (CTE)

WITH recent_orders AS ( SELECT * FROM orders WHERE order_date >= DATEADD(DAY, -30, GETDATE()) ) SELECT customer_id, COUNT(*) AS total_orders FROM recent_orders GROUP BY customer_id;

Создаёт временную таблицу и использует её в основном запросе. Когда нужно: разбить сложный запрос на шаги, сделать код читаемее

8. COALESCE + CAST

SELECT COALESCE(email, ‘Не указан’) AS email, CAST(total_amount AS DECIMAL(10,2)) AS amount FROM customers;

COALESCE заменяет NULL на значение по умолчанию. CAST преобразует тип данных. Когда нужно: заполнить пропуски, подготовить данные к отчёту, изменить формат

Эти 8 запросов — база, с которой закрывается большинство повседневных задач аналитика 🥱 Сохрани пост, чтобы быстро повторить перед интервью