我正在尝试由不同的用户设置动态阈值,但只返回今天日期的结果。我能够返回过去 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)
你是说你想根据过去 30 天确定今天的"实际"值是否大于 3 西格玛?如果是这样(不太了解您的表结构),我猜您可以使用这样的东西:
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