如何在KDB中对全列应用函数?避免重复sum函数的方法
避免重复编写sum函数实现日度聚合的方案
从你的查询语法来看,这应该是q/kdb+的SQL风格语句。要避免重复写sum,可以试试以下几种实用方法:
批量指定列并应用sum
先把需要聚合的列名存为一个符号列表,再用each批量对列执行sum操作:cols: `XLK`XLE`XLY`BTAL`BND`GLD`UVXY`SPY select sum each cols by t.date from r或者更简洁的写法:
select each sum cols by t.date from r动态生成查询语句
如果需要根据场景动态调整列,可以通过字符串拼接生成完整查询,再执行:cols: `XLK`XLE`XLY`BTAL`BND`GLD`UVXY`SPY queryStr: "select ", "," sv ("sum "),/:string cols, " by t.date from r" value queryStr // 运行生成的查询对所有数值列求和(按需使用)
如果你的目标列是表中所有数值类型的列,直接用sum *就能一次性对所有数值列求和:select sum * by t.date from r注意:这个方法会聚合所有数值列,如果你只需要指定的那几列,前两种方法更精准。
内容的提问来源于stack exchange,提问作者cjm2671
相关产品推荐
相关产品推荐

