Найти в Дзене
БизнеС++

"Шпаргалка SQL: как быстро находить данные, автоматизировать отчёты и не запутаться в джоинах"

SQL — это не просто язык программистов. Это инструмент, который помогает бизнесу: В этой статье — практические примеры запросов, которые можно использовать как шаблоны. Сохраняйте в закладки, отправляйте коллегам, применяйте в рабочих проектах! Задача: Найти всех клиентов из Москвы. SELECT name, phone
FROM clients
WHERE city = 'Москва'; Задача: Показать заказы с именами клиентов. SELECT orders.id, clients.name, orders.sum
FROM orders
INNER JOIN clients
ON orders.client_id = clients.id; Задача: Вывести заказы за последний месяц. SELECT id, sum, order_date
FROM orders
WHERE order_date BETWEEN '2023-10-01' AND '2023-10-31'; Для текущей даты используйте функции:
PostgreSQL: CURRENT_DATE
MySQL: CURDATE() Задача: Посчитать общую выручку по каждому клиенту. SELECT clients.name, SUM(orders.sum) as total
FROM clients
LEFT JOIN orders
ON clients.id = orders.client_id
GROUP BY clients.name; Задача: Найти менеджеров, которые работали с заказами клиентов из Москвы. SELECT man
Оглавление

SQL — это не просто язык программистов. Это инструмент, который помогает бизнесу:

  • Автоматизировать рутину.
  • Анализировать продажи, логистику, клиентов.
  • Ставить точные задачи IT-команде.

В этой статье — практические примеры запросов, которые можно использовать как шаблоны. Сохраняйте в закладки, отправляйте коллегам, применяйте в рабочих проектах!

Базовые запросы для старта

1. Выборка данных с фильтрацией

Задача: Найти всех клиентов из Москвы.

SELECT name, phone
FROM clients
WHERE city = 'Москва';

  • SELECT — какие столбцы выводим.
  • FROM — из какой таблицы.
  • WHERE — условие фильтрации.

2. Джоин двух таблиц (INNER JOIN)

Задача: Показать заказы с именами клиентов.

SELECT orders.id, clients.name, orders.sum
FROM orders
INNER JOIN clients
ON orders.client_id = clients.id;

  • INNER JOIN — связывает таблицы по совпадающим значениям (client_id).
  • Если клиент не делал заказов, он не попадёт в результат.

3. Фильтрация по дате

Задача: Вывести заказы за последний месяц.

SELECT id, sum, order_date
FROM orders
WHERE order_date BETWEEN '2023-10-01' AND '2023-10-31';

Для текущей даты используйте функции:
PostgreSQL: CURRENT_DATE
MySQL: CURDATE()

Сложные джоины и агрегации

4. Агрегация данных (GROUP BY)

Задача: Посчитать общую выручку по каждому клиенту.

SELECT clients.name, SUM(orders.sum) as total
FROM clients
LEFT JOIN orders
ON clients.id = orders.client_id
GROUP BY clients.name;
  • SUM() — суммирует значения.
  • GROUP BY — группирует результат по клиентам.
  • LEFT JOIN — выведет даже тех, кто не делал заказов (с total = NULL).

5. Многотабличные джоины

Задача: Найти менеджеров, которые работали с заказами клиентов из Москвы.

SELECT managers.name, clients.name
FROM orders
INNER JOIN clients
ON orders.client_id = clients.id
INNER JOIN managers
ON orders.manager_id = managers.id
WHERE clients.city = 'Москва';

6. Вложенные запросы (подзапросы)

Задача: Вывести клиентов, чья средняя сумма заказа больше 50 000 ₽.

SELECT name
FROM clients
WHERE id IN (
SELECT client_id
FROM orders
GROUP BY client_id
HAVING AVG(sum) > 50000
);

HAVING — фильтрация после группировки.

Как это использовать в бизнесе?

  • Автоматизация отчётов: Настройте скрипты на ежедневную выгрузку данных по продажам.
  • Поиск узких мест: Анализируйте, какие этапы процессов «тормозят» (например, долгая доставка).
  • Проверка гипотез: Сравнивайте доходы по регионам или категориям товаров.

Что сохранить в закладки?

Шаблон для джоинов:

SELECT ...
FROM таблица1
ТИП_ДЖОИНА таблица2
ON таблица1.столбец = таблица2.столбец;

Фильтр по дате для любого периода:

WHERE date BETWEEN 'начало' AND 'конец';

Формула агрегации:

SELECT ..., COUNT()/SUM()/AVG()
FROM ...
GROUP BY ...
HAVING условие;

P.S. Если вы системный аналитик или IT-специалист — сохраните эту шпаргалку. Она поможет быстро отвечать на вопросы бизнеса: «Почему упали продажи?», «Сколько клиентов из Москвы?», «Кто наш самый активный менеджер?».

Подписывайтесь на БизнеС++ — разбираем IT-решения без сложных терминов!