Кажется, что MySQL
не поддерживает оконные функции.
Например, простое: COUNT(*) OVER() AS cnt
не работает.
Что я не уверен, так это то, относится ли это к коммерческой версии (я полагаю, что версия сообщества ограничена).
Если нет, то как обойти эту недостающую функцию?
mysql
window-functions
Кратил
источник
источник
Ответы:
MySQL не поддерживает оконные функции (*). Есть то, что мы называем «оконной функцией бедняка» в форме GROUP_CONCAT () .
Существует множество приемов, которые используются
GROUP_CONCAT
для эмуляции оконных функций. Они не такие красивые (синтаксически) и иногда слишком ограничены. Я написал несколько. Смотрите мой пост в блоге с жалобами на отсутствующие оконные функции и ссылками на различные решения на основеGROUP_CONCAT
.В частности, выбор конкретных неагрегированных данных столбцов в GROUP BY и SQL: выбор топ-N записей на группу, другое решение может вас заинтересовать и дать вам толчок для начала.
Что вы должны отметить
GROUP_CONCAT()
:DISTINCT
ORDER BY ... ASC/DESC
SEPARATOR
(*) Добавлена поддержка оконных функций в MySQL 8
источник
Следует отметить, что MariaDB 10.2 (выпущена в мае 2017 года) имеет оконные функции . Это, безусловно, одна из возможностей, если вам нужны MySQL и оконные функции.
источник