红移中的PERCENTILE_CONT()

时间:2017-09-13 01:31:58

标签: sql function amazon-redshift typecasting-operator

我正在使用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置于声誉较低的位置。

2 个答案:

答案 0 :(得分:2)

这有用吗?

   PERCENTILE_CONT(0.90) within group (order by datediff(day, START_DATE, END_DATE)

我猜这个问题是日期差异。

答案 1 :(得分:0)

看看这个!

 percentile_cont(0.90) within group 
((order by datediff(day, START_DATE, END_DATE)::INT4 desc) over()