2017-09-13 4 views
0

ich Brennen einer Abfrage, die PERCENTILE_CONT() Funktion verwendet, so etwas wie:PERCENTILE_CONT() in Rotverschiebung

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

Jetzt Diese Abfrage vollständig funktioniert gut, wenn ich es von sqldeveloper in Oracle DB feuern, aber für einige Deshalb muß ich RedShift Datenbank verwenden, und wenn ich oben Abfrage in ihm Feuer, es einen Fehler wie wirft:

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

wie vorgeschlagen, ich versuchte Typumwandlung zu verwenden Typ DECIMAL, aber ich bin immer die gleicher Fehler

Ich habe Dokumentation gesucht, aber ich konnte auch keine Lösung von dort finden. Irgendwelche Gedanken, warum?

P.S: Nicht in der Lage PERCENTILE_CONT zu setzen, da es weniger Ruf hat.

Antwort

2

Funktioniert das?

Ich vermute, dass das Problem der Datumsunterschied ist.

+0

verwendete ich die datediff Funktion, wie Sie vorgeschlagen, aber es kam mit neuer Fehler auf, dann habe ich eine andere Version von DATEDIFF dh datediff (END_DATE, START_DATE), aber dies ist ein neuer Fehler, dass Fehler zu werfen: Syntaxfehler bei oder in der Nähe von "." Position: 635. Indem Sie einige Fehler in jeder beliebigen Zeile eingeben, habe ich festgestellt, dass der Fehler in dieser Zeile nur dort auftritt, wo ich diese Gruppe verwende (Reihenfolge nach ...). Völlig ahnungslos. – tv1902

+0

Endlich, für mich gearbeitet :) – tv1902

0

Überprüfen Sie diese!

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