С ними можно строить отчёты с подытогами по группам, общими итогами и всеми комбинациями категорий. Помогают отличать обычные строки от итоговых, чтобы отчёты были корректными и наглядными.
В этомгайде:
• Подытоги по отделам и ролям с ROLLUP.
• Все комбинации группировок с CUBE.
• Фильтрация и обработка итогов через GROUPING().
Используя эти функции, вы сможете создавать сложные аналитические отчёты быстрее, с меньшим количеством кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19❤7👍7👎1
В этой статье:
• Как COPY FROM и COPY TO работают быстрее и надежнее, чем массовые INSERT;
• Показан безопасный staging-поток с unlogged-таблицей;
• Подсказано, как отследить прогресс загрузки через pg_stat_progress_copy;
• Освещено использование COPY из кода на Python, Go и Rust с готовыми примерами;
🔊 Рекомендую продолжить на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤9🔥6
Пачка слитых курсов по программированию за 10000руб за подписку!
Да-да, RECURA дает бесплатные курсы по таким направлениям:
• Python (64гб видео)
• Linux (45гб курсов)
• PHP (34гб видео)
• Go (23гб видео)
• Docker (37гб видео)
• C# (26гб видео)
• Java (45гб видео)
• SQL (41гб видео)
• Другое (214гб видео)
Лучшие курсы от топовых школ. Не упусти!🔥
Да-да, RECURA дает бесплатные курсы по таким направлениям:
• Python (64гб видео)
• Linux (45гб курсов)
• PHP (34гб видео)
• Go (23гб видео)
• Docker (37гб видео)
• C# (26гб видео)
• Java (45гб видео)
• SQL (41гб видео)
• Другое (214гб видео)
Лучшие курсы от топовых школ. Не упусти!🔥
👍5❤4🔥2
В первой части
мы рассмотрели базовые методы. Во второй — функции для поиска, трансформации, разбиения и динамического форматирования строк. Они помогают эффективно нормализовать данные, готовить отчёты и работать с пользовательским вводом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍8🔥6🤝1
1.
LEAST(a, b, c, …)
— возвращает минимальное значение из списка аргументов. Полезно, когда нужно быстро определить наименьший показатель среди нескольких столбцов или метрик.2.
GREATEST(a, b, c, …)
— возвращает максимальное значение из списка аргументов. Используется для поиска наибольшего значения среди нескольких колонок или показателей.Обе функции помогают сравнивать значения внутри одной строки, упрощая аналитику и расчёт рейтингов, KPI или оценки рисков.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18👍13🔥6
Хотим понять, в какие месяцы и дни недели продажи растут, а в какие падают. Это важно для планирования акций, скидок и оптимизации работы склада и персонала.
В этой задаче:
• EXTRACT(MONTH FROM order_date) — чтобы выделить месяц заказа.
• EXTRACT(DOW FROM order_date) — чтобы выделить день недели.
• COUNT(*) + GROUP BY — считаем количество заказов по каждому месяцу и дню недели.
• ORDER BY — сортируем результат для наглядного анализа.
В итоге получаем инструмент для планирования продаж и оптимизации ресурсов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥8❤5🤝1
Сравнение с предыдущей строкой с LAG()
Хотите узнать, как меняется значение от предыдущей записи? В аналитике это частая задача, и решается с помощью функции
Создадим таблицу:
Запрос с LAG():
Пример для клиента с 3 заказами:
Функция
🔥 Так что
➡️ SQL Ready | #практика
Хотите узнать, как меняется значение от предыдущей записи? В аналитике это частая задача, и решается с помощью функции
LAG()
Создадим таблицу:
CREATE TABLE sales (
id INT,
customer VARCHAR(100),
amount DECIMAL(10,2)
);
Запрос с LAG():
SELECT id, customer, amount,
LAG(amount, 1) OVER (
PARTITION BY customer
ORDER BY id
) AS prev_amount
FROM sales;
Пример для клиента с 3 заказами:
id | customer | amount | prev_amount
------------------------------------
10 | Ivanov | 500 | NULL
12 | Ivanov | 700 | 500
15 | Ivanov | 650 | 700
Функция
LAG()
берёт значение из предыдущей строки в пределах группы. NULL
появляется, если предыдущей строки нет. Это позволяет быстро вычислять разницу между заказами:SELECT id, customer, amount,
amount - LAG(amount, 1) OVER (PARTITION BY customer ORDER BY id) AS diff
FROM sales;
🔥 Так что
LAG
— незаменимый инструмент для анализа изменений без подзапросов и джойнов.Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍8🔥6
Приёмы для построения сводных таблиц прямо в SQL: от обычных группировок до динамических комбинаций измерений. В шпаргалке собраны примеры с ROLLUP, CUBE, GROUPING SETS, а также полезные функции GROUPING() и HAVING для тонкой аналитики.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥6❤5🤝3