我正在编写一个自定义的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(或顺序不正确(,是否有方法引发异常?
除了在聚合函数实现中检查接收到的值是否按升序排列之外,没有其他方法可以做到这一点。