首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在FlinkSQL的会话窗口中获取LAST_VALUE?

如何在FlinkSQL的会话窗口中获取LAST_VALUE?
EN

Stack Overflow用户
提问于 2021-08-25 15:09:15
回答 1查看 109关注 0票数 0

我在Flink SQL (1.13)中使用会话窗口。是否有方法(必须在SQL中,没有UDF等)获取某个字段的最后一个值(换句话说:这将是window_end的值)?我正在尝试:

代码语言:javascript
复制
SELECT user_account_id, 
       SESSION_START(request_timestamp, INTERVAL '30' MINUTE) AS window_start, 
       SESSION_END(request_timestamp, INTERVAL '30' MINUTE) AS window_end,
       LAST_VALUE(package)
GROUP BY SESSION(request_timestamp, INTERVAL '30' MINUTE), user_account_id

但是我得到了一个错误:

代码语言:javascript
复制
Could not find an implementation method 'merge' in class 'org.apache.flink.table.planner.functions.aggfunctions.LastValueAggFunction' for function 'LAST_VALUE' that matches the following signature:
void merge(org.apache.flink.table.data.RowData, java.lang.Iterable)

我想使用窗口函数(OVER(...))在这里是行不通的。任何提示都很感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-01 12:15:09

我得到的答案是这还不受支持。一种解决方法是创建自定义user-defined aggregate function (UDAGG)。除此之外,还有一个用于该功能的新Jira

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68925461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档