首页 > 解决方案 > 使用 .Q.dpft 函数重新保存表

问题描述

我正在尝试加载每个日期的数据,然后对sym列进行排序并应用 parted 属性。但是我不知道如何使用该.Q.dpft功能保存到同一张表?

hdb有一张交易表。这是我的功能:

\l dbdir;
test:{
    trade:select from trade where date = x;
    trade:`sym xasc trade;
    .Q.dpft[dbdir;x;`sym;`trade]}each date;

似乎没有工作。错误是“交易”

标签: kdb

解决方案


我认为您需要将表trade&dbdir作为参数传递给您的函数,因为您在函数内部引用它们。

test:{[dbdir;table;x]
  trade:select from table where date = x;
  .Q.dpft[dbdir;x;`sym;table]}[dbdir;`trade]each date

另外也许值得注意的是,它.Q.dpftsym为您对列进行排序,因此无需单独排序。


推荐阅读