如何在自定义Presto聚合函数中强制排序(ORDER BY)



我正在编写一个自定义的Presto聚合函数,当(且仅当(值按我聚合的值升序排列时,该函数会产生正确的结果。即

以下将起作用:

SELECT key, MY_AGG_FUNC(value ORDER BY value ASC) FROM my_table GROUP BY key

以下操作将产生错误的结果:

SELECT key, MY_AGG_FUNC(value) FROM my_table GROUP BY key

在开发MY_AGG_FUNC时,是否有一种方法可以在内部强制执行ORDER BY value ASC,而不依赖调用方将其添加到查询中?

另一种选择是,如果用户根本没有指定ORDER BY(或顺序不正确(,是否有方法引发异常?

在开发MY_AGG_FUNC时,是否有一种方法可以在内部强制执行ORDER BY值ASC,而不依赖调用方将其添加到查询中?

没有办法做到这一点。

作为一种替代方案,如果用户根本没有指定ORDER BY(或顺序不正确(,是否有方法引发异常?

除了在聚合函数实现中检查接收到的值是否按升序排列之外,没有其他方法可以做到这一点。

相关内容

  • 没有找到相关文章

最新更新