period=1..4
sqlColAlias(makeCall(rowAvg, sqlCol(take(`bid, size(period)) + string(period))), `bidavg)
结果:
< rowAvg([< bid1 >,< bid2 >,< bid3 >,< bid4 >]) as bidavg >
rowAvg
包含一些元代码向量而不是列字段,可以直接通过自定义编写如下:
< rowAvg(bid1, bid2, bid3, bid4) as bidavg >
但是我想动态输入bid1到4字段。应该怎么写呢?
如果是传统的基于函数的编程,可以写成:
t = table(1..3 as bid1, 2..4 as bid2, 3..5 as bid3, 4..6 as bid4)
colN = `bid +string(1..4)
sql(sqlColAlias(makeUnifiedCall(rowAvg, sqlCol(colN)), `bidavg), from= t).eval()
2.00.12/3.00.0版本中基于宏变量的编程可以写为:
<select rowAvg(_$$colN) as bidavg from t>.eval()