PERCENTILE_CONT() 红移
PERCENTILE_CONT() in redshift
我正在触发一个使用 PERCENTILE_CONT() 函数的查询,类似于:
select .....
PERCENTILE_CONT(0.90) within group (order by END_DATE-START_DATE)
from ....
where .....
;
现在,当我从 Oracle DB 中的 SQLDeveloper 触发该查询时,它完全可以正常工作,但出于某种原因,我需要使用 RedShift 数据库,当我在其中触发上面的查询时,它会抛出如下错误:
ERROR: function percentile_cont(interval, numeric) does not exist
Hint: No function matches the given name and argument types. You may need to add explicit type casts.`
按照建议,我尝试将类型转换为 DECIMAL 和 INTEGER 类型,但我遇到了同样的错误。
我已经搜索了文档,但我也无法从那里找到解决方案。
有什么想法,为什么?
P.S:无法放置标签 PERCENTILE_CONT,因为它的声誉较低。
这个有用吗?
PERCENTILE_CONT(0.90) within group (order by datediff(day, START_DATE, END_DATE)
我猜问题出在日期差异上。
看看这个!
percentile_cont(0.90) within group
((order by datediff(day, START_DATE, END_DATE)::INT4 desc) over()
我正在触发一个使用 PERCENTILE_CONT() 函数的查询,类似于:
select .....
PERCENTILE_CONT(0.90) within group (order by END_DATE-START_DATE)
from ....
where .....
;
现在,当我从 Oracle DB 中的 SQLDeveloper 触发该查询时,它完全可以正常工作,但出于某种原因,我需要使用 RedShift 数据库,当我在其中触发上面的查询时,它会抛出如下错误:
ERROR: function percentile_cont(interval, numeric) does not exist
Hint: No function matches the given name and argument types. You may need to add explicit type casts.`
按照建议,我尝试将类型转换为 DECIMAL 和 INTEGER 类型,但我遇到了同样的错误。
我已经搜索了文档,但我也无法从那里找到解决方案。 有什么想法,为什么?
P.S:无法放置标签 PERCENTILE_CONT,因为它的声誉较低。
这个有用吗?
PERCENTILE_CONT(0.90) within group (order by datediff(day, START_DATE, END_DATE)
我猜问题出在日期差异上。
看看这个!
percentile_cont(0.90) within group
((order by datediff(day, START_DATE, END_DATE)::INT4 desc) over()