2013-12-09 102 views
0

我跟蹤日期在LogiQL斷言:LogiQL:查找最大值謂詞

compilation_date[c] = d -> compilation(c), datetime(d). 

我想找出什麼是最後進行編譯,即什麼是c針對d是最近的謂詞compilation_date

我該怎麼做,使用LogiQL?

回答

1

嘗試:

last_compilation_date[]=maxd <- 
    agg<<maxd=max(d)>> 
     compilation_date[_]=d. 
1

用於argmax的語法是:

max_date[]=y,last_compilation[]=x<- 
    agg<<y=max(y0),x=max(y0,x0)>> 
    compilation_date[x0]=y0. 

如本例

lbi ttt> addblock <doc> 
> compilation_date[x]=y->datetime(y),int[32](x). 
> max_date[]=y,last_compilation[]=x<-agg<<y=max(y0), x=max(y0,x0)>>compilation_date[x0]=y0. 
> </doc> 
added block '__block2' 
lbi ttt> 
lbi ttt> exec '+compilation_date[2]=datetime:now[].' 
lbi ttt> exec '+compilation_date[1]=datetime:add[datetime:now[],1,"days"].' 
lbi ttt> print compilation_date 
1 2013-12-10 20:03:23 
2 2013-12-09 20:03:23 
lbi ttt> print max_date 
2013-12-10 20:03:23 
lbi ttt> print last_compilation 
1 
lbi ttt>