在函数 select 的 groupby 子句中使用函数

Use a function in the groupby clause of a functional select

是否可以在函数 select 的 groupby 部分包含一个函数,类似于聚合的工作方式?

例如我将如何转

select by `long$`timespan:00 xbar time from table

进入功能select?

1. 可以,只是函数应该是 allowed/compatible 按子句分组。 '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. 使用 'parse' 的查询的函数形式是:

q)?[`table;();(enlist `time)!enlist ($;enlist `long;($;enlist `timespan;(xbar;04:00;`time)));()

对于像这样复杂的东西,我只是将 xbar 部分放入函数中:

?[`table;();(1#`time)!enlist({(`long$`timespan:00) xbar x};`time);()]