mysql为何不支持开窗函数

至于为什么不支持,那得问MySQL团队了。不过MySQL中可以通过变通的方式支持开窗函数。示例:开窗函数:SELECT RANK() OVER (PARTITION BY Gender ORDER BY Age) AS , FirstName, Age, Gender FROM Person;MySQL实现相同功能:SELECT first_name, age, gender, @curRank := @curRank + 1 AS rankFROM person p, (SELECT @curRank := 0) rORDER BY age;其他情况只需把开窗函数转换成MySQL支持的语法即可。Enjoy!参考:http://stackoverflow.com/questions/3333665/rank-function-in-mysql
■网友
mysql8 已经支持
12.19 Window Functions
以前写过相关样例,sqlserver,mysql 不利用开窗函数,都依赖中间变量作缓存,再通过中间变量构造多级查询

sqlserver开窗函数改造样例
mysql 实现类似开窗函数的功能

提点别的

开窗函数不过是数据的一种查询统计语法糖,多是用于离线统计,这同时也是大数据技术栈的应用场景。

hive sql,spark sql 都支持开窗函数,部分减轻了这方面的要求,用mysql的企业相比用sql server,oracle的,对hive spark会更亲近些。

既然mysql不支持

sqoop迁移到hase,hive,以前用hsql,现在用spark sql就行。

【mysql为何不支持开窗函数】 ps:spark兼容hsql,现在hive都在往spark上转,hive快凉了。


    推荐阅读