1
5
按照您的方法,您只需使update语句起作用,然后像这样迭代列:
假设您可以修改表1。如果必须保留原始表1,则可以按值传递它,尽管它会消耗更多内存
另一种方法是聚合、透视和连接,尽管这不一定是一个更好的解决方案,因为您得到的是null而不是零
|
2
3
您可以研究几种不同的方法。 最简单的方法是功能更新- http://code.kx.com/wiki/JB:QforMortals2/queries_q_sql#Functional_update 不过,下面的内容应该更有用、更快、更整洁: 你的问题可以分为两部分。对于第一部分,您希望在表2中通过grp和约束创建每个类别的总和。至于第二部分,您希望将这些结果(查找)连接到表1中的相应记录上。
您可以使用创建必要的组
但请注意,这只会在select查询中创建列的嵌套列表
下一步是
然后,要创建cat列,可以使用类似pivot的语法- http://code.kx.com/wiki/Pivot
现在,您可以使用此查找表并索引到表1中的每一行
要用零填充空值,请使用克拉符号- http://code.kx.com/wiki/Reference/Caret
现在,您可以使用
嗯,肖恩 |
3
-1
这种方法是传递类别列表的最简单方法
|
amandath · 函数更新-带动态列的多变量函数 6 年前 |
marrowgari · Kdb数据库到PyQ中的NumPy数组 6 年前 |
chrise · 函数的KDB命名空间 6 年前 |
Fomalhaut -C · 在输入列表上迭代函数(Q/KDB) 6 年前 |
DJ180 · 按enter键将导致KDB后台进程停止 6 年前 |
user8415577 · 返回kdb中的表列表 6 年前 |
marrowgari · PyQ:q.upsert到八字桌 7 年前 |