【问题】

【回答】
Mysql 不支持窗口函数,对这种有序的计算要使用子查询完成,比如可以这样写:select * from t0055 t1 where 属性 2 >100 or 日期 in (select 日期 +1 from t0055 where 属性 2>100)
但这个查询是建立在日期连续的基础上,如果日期不连续,还需要人为造个序号,需要再做一层嵌套。
这种情况建议使用 SPL 来实现,SPL 支持有序计算,无论日期是否连续写起来都很简单,代码如下:
| A | |
| 1 | $select * from t0055 order by 日期 |
| 2 | =A1.pselect@a(属性 2>100) |
| 3 | =A1(A2.conj([~,~+1])) |
A3 所得结果如下:

集算器提供 JDBC 接口,可以像数据库一样嵌入到应用程序中,用起来很简单,可参考Java 如何调用 SPL 脚本。
本文探讨了MySQL不支持窗口函数的问题以及解决方法,通过子查询实现有序计算。当日期不连续时,需要额外处理。文章推荐使用SPL进行有序计算,因其简单易用,即使日期不连续也能轻松处理。SPL可以通过JDBC接口集成到应用程序中。
686

被折叠的 条评论
为什么被折叠?



