基于 vars 的值构建的解析树
Parse tree built on values from vars
我们可以在kdb+中按几列分组:
q)t:([]a:1 1 3;b:1 1 4;c:7 8 9);
q)select sum c by grp:([]a;b) from t
grp | c
--------| --
`a`b!1 1| 15
`a`b!3 4| 9
q)gcols:`a`b
但是如果要分组的所需列在变量中,如何用函数形式做同样的事情(如何构建正确的解析树)gcols
?
更常规的分组依据是:
q)select sum c by a,b from t
a b| c
---| --
1 1| 15
3 4| 9
其函数形式为
q)?[t;();{x!x}gcols;(1#`c)!enlist(sum;`c)]
a b| c
---| --
1 1| 15
3 4| 9
您的分组风格的函数形式为:
q)?[t;();(1#`grp)!enlist(flip;(!;enlist gcols;enlist,gcols));(1#`c)!enlist(sum;`c)]
grp | c
--------| --
`a`b!1 1| 15
`a`b!3 4| 9
我们可以在kdb+中按几列分组:
q)t:([]a:1 1 3;b:1 1 4;c:7 8 9);
q)select sum c by grp:([]a;b) from t
grp | c
--------| --
`a`b!1 1| 15
`a`b!3 4| 9
q)gcols:`a`b
但是如果要分组的所需列在变量中,如何用函数形式做同样的事情(如何构建正确的解析树)gcols
?
更常规的分组依据是:
q)select sum c by a,b from t
a b| c
---| --
1 1| 15
3 4| 9
其函数形式为
q)?[t;();{x!x}gcols;(1#`c)!enlist(sum;`c)]
a b| c
---| --
1 1| 15
3 4| 9
您的分组风格的函数形式为:
q)?[t;();(1#`grp)!enlist(flip;(!;enlist gcols;enlist,gcols));(1#`c)!enlist(sum;`c)]
grp | c
--------| --
`a`b!1 1| 15
`a`b!3 4| 9