gpt4 book ai didi

postgresql - 如何将更严格的函数转换为聚合

转载 作者:行者123 更新时间:2023-11-29 14:08:14 25 4
gpt4 key购买 nike

我一直在寻找将 null 设置为最大值的 max 函数,并在 ( https://www.postgresql.org/message-id/r2y162867791004201002x50843917y3d1f1293db7451e0@mail.gmail.com ) 上找到了以下内容:

create or replace function greatest_strict(variadic anyarray)
returns anyelement as $$
select null from unnest($1) g(v) where v is null
union all
select max(v) from unnest($1) g(v)
limit 1
$$ language sql;

问题是这个函数不是可用于 group by 的聚合函数。我该如何改变它?这样我就可以使用以下查询:

SELECT greatest_strict(performed_on) as start_date
from task
group by contract_id;

最佳答案

我之前创建过:https://wiki.postgresql.org/wiki/Aggregate_strict_min_and_max

我称它为 strict_max,而不是 strict_greatest,因为“max”已经是一个聚合,所以这似乎是一个更好的名字。

这(相对于其他答案)的优点是在对它们进行聚合时不会将所有值存储在内存中,因此它可以处理非常大的数据集。

关于postgresql - 如何将更严格的函数转换为聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57766031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com