LogiQL:查找谓词的最大值

时间:2013-12-09 15:11:35

标签: logiql

我正在跟踪LogiQL谓词中的日期:

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

我想知道上次执行的编译是什么,即c d是谓词compilation_date中最新的{{1}}。

我如何使用LogiQL做到这一点?

2 个答案:

答案 0 :(得分:1)

尝试:

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

答案 1 :(得分: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>