【发布时间】:2021-11-03 17:11:09
【问题描述】:
我在 pl/pgsql 中创建了一个自定义聚合,它要求行以某种方式相对于输入列进行排序。我可以通过在聚合调用中使用ORDER BY 来完成此操作。我希望在聚合调用中不明确声明ORDER BY 的情况下进行这种排序。
例如我有聚合函数 f(A 文本,B 文本)。我可以通过这样调用它来得到正确的计算:
select
X,
Y,
f(A, B order by A, B)
from
table
group by
X,
Y
我希望能够像这样调用它并在自定义聚合的定义中指定排序。
select
X,
Y,
f(A, B)
from
table
group by
X,
Y
这可能吗?
【问题讨论】:
-
我知道在某些情况下,如果您的数据以正确的顺序插入(并且 rownum 会帮助您),您将实现这一点,但据我所知,您必须使用
ORDER BYif您希望确保订单得到遵守。
标签: postgresql aggregate-functions