MySQL не підтримує функції вікна (*). Є те, що ми називаємо "функцією вікна бідної людини" у вигляді GROUP_CONCAT () .
Існує маса хитрощів, що використовуються GROUP_CONCAT
для імітації віконних функцій. Вони не такі ситні (синтаксично) і іноді занадто обмежені. Я написав декілька. Дивіться мій пост у блозі, який скаржиться на відсутні функції вікна та посилається на різні рішення на основі GROUP_CONCAT
.
Зокрема, вибір конкретних не агрегованих даних стовпців у групі GROUP BY та SQL: підбір топ-N записів у групі, інше рішення може зацікавити вас і може дати вам початок.
Про що слід звернути увагу GROUP_CONCAT()
:
- Можна використовувати
DISTINCT
- Можна використовувати
ORDER BY ... ASC/DESC
- Можна встановити
SEPARATOR
- Як будь-яка функція агрегації - вона відкидає значення NULL; багато хитрощів щодо цього.
(*) У MySQL 8 додано підтримку функцій вікон