Що таке групування наборів у PostgreSQL?

У PostgreSQL функція GROUPING SETS дозволяє користувачам генерувати набори результатів, еквівалентні тим, які створює UNION ALL з кількох пропозицій GROUP BY. Ця функція дуже корисна для створення складних звітів із кількома рівнями агрегації в одному запиті.7 днів тому

ГРУПУВАННЯ КОМПЛЕКТІВ визначає кілька груп даних в одному запиті. Агрегуються лише вказані групи замість повного набору агрегацій, створених CUBE або ROLLUP. НАБОРИ ГРУПУВАННЯ можуть містити один елемент або список елементів.

Функція PostgreSQL GROUPING() Функція GROUPING() є використовується в поєднанні з пропозицією GROUPING SETS для розрізнення рядків результатів. Аргументи функції GROUPING мають точно відповідати виразам, наведеним у реченні GROUP BY. Однак вони не оцінюються. Функція GROUPING() повертає 0 або 1.

Групування CUBE еквівалентно серії наборів групувань і, по суті, є коротшою специфікацією. N елементів специфікації CUBE відповідають 2^N НАБОРАМ ГРУПУВАННЯ.

ГРУПУВАННЯ є використовується для відмінності нульових значень, які повертає ROLLUP, CUBE або GROUPING SETS, від стандартних нульових значень. NULL, що повертається в результаті операції ROLLUP, CUBE або GROUPING SETS, є спеціальним використанням NULL. Це діє як заповнювач стовпця в наборі результатів і означає все.

Найістотніша відмінність полягає в тому набори є динамічними, а групи – ні. Коли ваші дані зміняться, набір оновлюватиметься разом із ними, хоча це недоступно для груп. – Набори пропонують більшу гнучкість, оскільки ви можете зв’язати їх із умовою.