2017-09-13 66 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()