2016-04-11 14 views
0

Ich versuche, ein diff_date von Presto von diesen Daten zu bekommen.Wie bekomme ich date_diff von vorherigen Zeilen in Prestodb?

timespent | 2016-04-09T00:09:07.232Z | 1000   | general 
timespent | 2016-04-09T00:09:17.217Z | 10000   | general 
timespent | 2016-04-09T00:13:27.123Z | 250000  | general 
timespent | 2016-04-09T00:44:21.166Z | 1144020654000 | general 

Dies ist meine Abfrage

select _t, date_diff('second', from_iso8601_timestamp(_ts), SELECT from_iso8601_timestamp(f._ts) from logs f 
       where f._t = 'timespent' 
       and f.dt = '2016-04-09' 
       and f.uid = 'd2de01a1-8f78-49ce-a065-276c0c24661b' 
       order by _ts) 
from logs d 
where _t = 'timespent' 
and dt = '2016-04-09' 
and uid = 'd2de01a1-8f78-49ce-a065-276c0c24661b' 
order by _ts; 

Dies ist der Fehler ich

Query 20160411_150853_00318_fmb4r failed: line 1:61: no viable alternative at input 'SELECT' 

Antwort

2

bekommen Ich glaube, Sie lag() wollen:

select _t, 
     date_diff('second', from_iso8601_timestamp(_ts), 
       lag(from_iso8601_timestamp(f._ts)) over (partition by uid order by dt) 
       ) 
from logs d 
where _t = 'timespent' and dt = '2016-04-09' and 
     uid = 'd2de01a1-8f78-49ce-a065-276c0c24661b' 
order by _ts; 
+0

Perfe ct. Vielen Dank! – toy

0
select date_diff('Day',from_iso8601_date(substr(od.order_date,1,10)),CURRENT_DATE) AS "diff_Days" 
from order od;