Q(KDB)在日期范围内选择今天的日期

时间:2016-03-21 14:57:05

标签: kdb qsqlquery

我正在尝试设置不同用户的动态阈值,但只返回今天日期的结果。我能够返回过去30天的所有记录,但是我很难根据过去30天的计算输出今天的日期..我是q语言的新手,并且真的遇到了这个简单陈述的麻烦:((已经尝试过和/或声明但没有执行..)感谢您提前获得所有帮助!

select user, date, real*110 from table where date >= .z.D - 30,   real> (3*(dev;real) fby user)+((avg;real) fby user)

1 个答案:

答案 0 :(得分:2)

您是说要根据过去30天确定今天的任何“真实”值是否大于3 sigma?如果是这样(不太了解你的表结构)我猜你可以使用这样的东西:

q)t:t,update user:`user2,real+(.0,39#10.0) from t:([] date:.z.D-til 40;user:`user1;real:20.1,10.0+39?.1 .0 -.1);

q)sigma:{avg[y]+x*dev y};

q)select from t where date>=.z.D-30, ({(.z.D=x`date)&x[`real]>sigma[3]exec real from x where date<>.z.D};([]date;real)) fby user
date       user  real
---------------------
2016.03.21 user1 20.1