STRING_AGG, FILTER i ROLLUP
Połącz wartości grupy w tekst, licz według warunku i dodaj wiersze sum częściowych.
Składnia
STRING_AGG(column, separator [ORDER BY …])aggregate(…) FILTER (WHERE condition)GROUP BY ROLLUP (column1, column2)
- MySQL nazywa STRING_AGG funkcją GROUP_CONCAT; SQL Server również używa STRING_AGG.
- ROLLUP dodaje sumę częściową dla każdej kolumny wiodącej oraz sumę całkowitą.
Przykład
SELECT channel, COUNT(*) AS orders FROM orders GROUP BY ROLLUP (channel) ORDER BY channel;
Zamówienia według kanału plus wiersz sumy, gdzie kanał to NULL.
Użyte tabele: orders. Wypróbuj to w lekcji poniżej.
Typowe błędy
- W wyniku ROLLUP wartość NULL w kolumnie grupującej może być wierszem sumy częściowej albo prawdziwym NULL. GROUPING() je rozróżnia.