是否可以在功能选择的 groupby 部分中包含一个函数,类似于聚合的工作方式?
例如,我将如何转
select by `long$`timespan$04:00 xbar time from table
进入功能选择?
1.是的,你可以,只是功能应该被允许/兼容到 group by 子句。'xbar' 是允许的。
语法是:(function;param1;parma2;...param n)
这是一个前任。
q)t:([]id:til 20;v:til 20)
q)select by 5 xbar id from t
q) // functional form
q)?[`t;();(enlist `id)!enlist (xbar;5;`id);()]
2.获取简单查询函数形式的技巧: 使用'parse'函数:
q) parse "select id from t"
输出是函数形式:
q)(?;`t;,(),0b,(,`id)!,`id)
用它来制作函数形式:
q) ?[`t;();0b;(enlist `id)!enlist `id]
3.使用“解析”的查询的功能形式是:
q)?[`table;();(enlist `time)!enlist ($;enlist `long;($;enlist `timespan;(xbar;04:00;`time)));()
对于像这样复杂的事情,我只是将xbar
部分放入一个函数中:
?[`table;();(1#`time)!enlist({(`long$`timespan$04:00) xbar x};`time);()]