MySQL似乎不支持窗口函数。
简单地说:COUNT(*) OVER() AS cnt不起作用。
我不确定这是否也适用于商业版本(我假设社区版本是有限的子集)。
如果没有,如何处理这个缺失的功能?
发布于 2013-04-17 07:02:05
MySQL不支持窗口函数(*)。我们称之为“穷人的窗口功能”的形式是组_凹()。
使用GROUP_CONCAT来模拟窗口函数有很多技巧。它们不那么漂亮(在语法上),有时也过于有限。我写了几封。请参阅我的博客文章抱怨缺少窗口函数,并链接到基于GROUP_CONCAT的各种解决方案。
特别是,在组中选择特定的非聚合列数据和SQL:每组选择顶级N条记录,这是另一种解决方案可能是您感兴趣的,并可能给您一个启动。
关于GROUP_CONCAT(),您应该注意的是:
DISTINCTORDER BY ... ASC/DESCSEPARATOR(*) MySQL 8中增加了对窗口函数的支持
发布于 2016-12-25 17:37:52
值得注意的是,MariaDB 10.2 (2017年5月发布)有窗口函数。如果您需要MySQL和窗口函数,那么这当然是一个值得追求的途径。
https://dba.stackexchange.com/questions/40130
复制相似问题