如何在postgresql中创建generate\ series函数?

368yc8dk  于 2021-08-01  发布在  Java
关注(0)|答案(1)|浏览(279)

我在网上看到很多地方可以使用generate\ series函数(在postgresql中),如下所示:

select k, percentile_disc(k) within group (order by things.value)
from things, generate_series(0.01, 1, 0.01) as k
group by k

它的工作原理是:-
generate\u series生成值介于起始值和结束值之间的临时表,并带有可选步骤。在本例中,generate\ u series(0.01,1,0.01)返回0.01,0.02等。。
但在我的情况下,它显示错误,说它不存在。
ql error[42883]:错误:函数generate\ u series(numeric,integer,numeric)不存在提示:没有与给定名称和参数类型匹配的函数。您可能需要添加显式类型转换。
任何人都可以帮助我的代码如何创建这个函数显式。
这会很有帮助的!

daupos2t

daupos2t1#

你的代码应该有用。但你可以用整数和除法:

select k / 100.0, percentile_disc(k / 100.0) within group (order by things.value)
from things cross join
     generate_series(1, 100, 1) as k
group by k

我想指出的是,即使是这样的代码:

select generate_series(0.01::numeric, 1::int, 0.01::numeric)

在db上测试回到postgres 9.5。

相关问题