TGViewer
Data Science. SQL hub Data Science. SQL hub @sqlhub · 36K subscribers
Post #2440 3.71K
⚡️ SQL-приём: `GROUPING SETS` может заменить несколько тяжёлых `GROUP BY` + `UNION ALL`.

Допустим, нужно одновременно получить статистику:

- по стране и городу;
- только по стране;
- общий итог.

Часто пишут так:


SELECT country, city, SUM(revenue)
FROM sales
GROUP BY country, city

UNION ALL

SELECT country, NULL, SUM(revenue)
FROM sales
GROUP BY country

UNION ALL

SELECT NULL, NULL, SUM(revenue)
FROM sales;


Но SQL умеет это нативно:


SELECT
country,
city,
SUM(revenue) AS revenue
FROM sales
GROUP BY GROUPING SETS (
(country, city),
(country),
()
);


() означает grand total.

А если нужно понять, настоящий ли NULL лежит в данных или это строка итогов:


GROUPING(country)
GROUPING(city)


вернут 1 для колонок, которые были свернуты агрегированием.

🔥 Особенно полезно для:

OLAP-запросов;
аналитических отчётов;
дашбордов;
многоуровневых итогов;
запросов, где иначе появляется несколько почти одинаковых GROUP BY.

Ещё есть:


ROLLUP(...)
CUBE(...)


ROLLUP строит иерархические итоги, а CUBE - все комбинации измерений.

Если в аналитическом SQL у вас появляется цепочка из GROUP BY + UNION ALL, возможно, вы просто забыли про GROUPING SETS.

#SQL #PostgreSQL #DataEngineering #Analytics
  • ❤ 9
  • 👍 8
  • 🔥 8
  • 🤔 2
  • 😱 1
More from @sqlhub
  1. Sep 21, 2026🧩 Сложная SQL-задача: симуляция DNS-кеша Есть таблица запросов: CREATE TABLE dns_requests…
  2. Sep 18, 2026🔥 PostgreSQL 19 задерживается релиз может сдвинуться на несколько недель или даже месяцев…
  3. Sep 17, 2026Участвуй во всероссийском ИТ-чемпионате МТС True Tech Champ 2026 c призовой фондом 10 250…
  4. Sep 17, 2026📌 NY Post: Anthropic - это культ Профессор Вашингтонского университета Педро Домингос в и…
  5. Sep 16, 2026Post #2492
  6. Sep 16, 2026Стать специалистом по Data Science всего за 10 недель — это реально! Если давно смотрите в…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →