2016-03-21 13 views
0

Ich versuche, einen dynamischen Schwellenwert von einem anderen Benutzer einzurichten, aber gebe nur das Ergebnis vom heutigen Datum zurück. Ich konnte alle Aufzeichnungen der letzten 30 Tage zurückgeben, aber ich habe Probleme, nur das heutige Datum basierend auf der Berechnung aus den letzten 30 Tagen auszugeben .. Ich bin neu in der q Sprache und habe wirklich Probleme mit dieser einfachen Aussage :((hat versucht, und/oder Erklärung, aber die Ausführung nicht ..) Vielen Dank für die Hilfe im Voraus!Q (KDB) Auswahl des heutigen Datums innerhalb des Datumsbereichs

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

Antwort

2

Sie sagen, dass Sie, wenn eine der heutigen „echte“ Werte größer als 3 Sigma bestimmen wollen in den letzten 30 Tagen? Wenn dem so ist (ohne viel über Ihre Tischstruktur zu wissen), könnte ich folgendes verwenden:

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 
Verwandte Themen