2013-12-09 64 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>