Смотреть в Telegram
🤖 SQL в действии: запросы, которые должен знать каждый аналитик Для аналитика важно не только знать базовые запросы, но и уметь использовать более сложные конструкции: агрегатные функции, подзапросы, оконные функции и объединения таблиц. Эти навыки помогут находить инсайты, анализировать метрики и строить отчеты на основе больших объемов данных. В этом посте мы продолжаем разбирать полезные SQL-запросы, которые пригодятся каждому аналитику. Они помогут вам работать с данными быстрее и эффективнее. 1. Анализ продаж с использованием агрегатных функций Допустим, у нас есть таблица sales с колонками: sale_id, product_id, region, sale_date, amount. Мы хотим узнать общую сумму продаж и средний чек по регионам:
SELECT 
    region, 
    SUM(amount) AS total_sales, 
    AVG(amount) AS avg_check
FROM sales
GROUP BY region
ORDER BY total_sales DESC;
Этот запрос позволяет быстро понять, какой регион приносит больше всего выручки. 2. Использование подзапросов для поиска аномалий Предположим, мы хотим найти товары, продажи которых ниже среднего уровня по всем товарам:
SELECT product_id, SUM(amount) AS total_sales
FROM sales
GROUP BY product_id
HAVING SUM(amount) < (
    SELECT AVG(total_sales)
    FROM (
        SELECT SUM(amount) AS total_sales
        FROM sales
        GROUP BY product_id
    ) AS subquery
);
Здесь мы используем подзапрос для вычисления среднего уровня продаж по всем товарам и фильтруем те товары, которые находятся ниже этого уровня. 3. Оконные функции для анализа трендов Оконные функции позволяют анализировать данные без группировки. Например, найдем кумулятивную выручку (накопительный итог) по датам:
SELECT 
    sale_date,
    SUM(amount) OVER (ORDER BY sale_date) AS cumulative_sales
FROM sales;
Такой запрос поможет увидеть динамику роста выручки за определенный период. 4. Сравнение текущих и предыдущих периодов Чтобы сравнить продажи текущего месяца с предыдущим, можно использовать оконные функции:
SELECT 
    region,
    DATE_TRUNC('month', sale_date) AS month,
    SUM(amount) AS monthly_sales,
    LAG(SUM(amount)) OVER (PARTITION BY region ORDER BY DATE_TRUNC('month', sale_date)) AS prev_month_sales,
    SUM(amount) - LAG(SUM(amount)) OVER (PARTITION BY region ORDER BY DATE_TRUNC('month', sale_date)) AS sales_diff
FROM sales
GROUP BY region, DATE_TRUNC('month', sale_date)
ORDER BY region, month;
Этот запрос покажет динамику продаж по регионам с учетом разницы между месяцами. 5. Объединение таблиц для анализа Допустим, у нас есть две таблицы: products (с информацией о товарах) и sales (с информацией о продажах). Чтобы получить список товаров с их категориями и общей суммой продаж, используем JOIN:
SELECT 
    p.product_name,
    p.category,
    SUM(s.amount) AS total_sales
FROM products p
LEFT JOIN sales s ON p.product_id = s.product_id
GROUP BY p.product_name, p.category
ORDER BY total_sales DESC;
Такой запрос помогает объединять данные из нескольких таблиц для более глубокого анализа. Попробуйте эти запросы на своих данных и убедитесь в их эффективности! 🚀
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Бот для знакомств