Parece que MySQL
não suporta funções de janela.
Por exemplo, o simples: COUNT(*) OVER() AS cnt
não funciona.
O que não tenho certeza é se isso também se aplica à versão comercial (presumo que a versão da comunidade seja um subconjunto limitado).
Caso contrário, como solucionar esse recurso ausente?
mysql
window-functions
Cratylus
fonte
fonte
Respostas:
O MySQL não suporta funções de janela (*). Existe o que chamamos de "função de janela de um pobre homem" na forma de GROUP_CONCAT () .
Existem muitos truques
GROUP_CONCAT
para emular as funções da janela. Eles não são tão bonitos (sintaticamente) e às vezes são muito limitados. Eu escrevi alguns. Veja o meu post no blog reclamando das funções ausentes da janela e vinculando a várias soluções baseadas emGROUP_CONCAT
.Em particular, Selecionando dados específicos de uma coluna não agregada em GROUP BY e SQL: selecionando os principais N registros por grupo, outra solução pode ser do seu interesse e dar-lhe um pontapé inicial.
Coisas que você deve observar sobre
GROUP_CONCAT()
:DISTINCT
ORDER BY ... ASC/DESC
SEPARATOR
(*) Suporte para funções de janela foi adicionado no MySQL 8
fonte
É importante ressaltar que o MariaDB 10.2 (lançado em maio de 2017) possui funções de janela . Esse é certamente um caminho a seguir, se você precisar de MySQL e funções de janela.
fonte