2017-09-13 36 views
0

我射击这是使用PERCENTILE_CONT()函数,就像一个查询:PERCENTILE_CONT()在红移

select ..... 
     PERCENTILE_CONT(0.90) within group (order by END_DATE-START_DATE) 
from .... 
where ..... 
; 

现在,当我从的SQLDeveloper Oracle数据库中火了这个查询完全工作正常,但对于一些因此,我需要使用红移数据的基础上,当我火上面它的查询,它抛出一个错误,如:

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.` 

至于建议,我试图用强制转换为小数和整数类型,但我得到的同样的错误。

我搜索了文档,但是我也找不到解决方案。 有什么想法,为什么?

P.S:无法放置标记PERCENTILE_CONT,因为它的声望较低。

回答

2

这是行不通的?

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

我猜测问题是日期差异。

+0

我用DATEDIFF函数如你所说,但它想出了新的错误,然后我用DATEDIFF即DATEDIFF(END_DATE,START_DATE)的另一个版本,但这是抛出一个新的错误的错误:在语法错误或接近“。”。 职位:635.通过在每一条随机线上输入一些错误,我发现只有在我使用这个组(按顺序...)函数的地方,该错误在该行上。完全无知。 – tv1902

+0

最后,为我工作:) – tv1902

0

看看这个!

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