我有一个表,其中包含某个品种的增量数据,我想要做的是聚合数据并创建一个汇总表,其中仅显示品种、可用数据的最早时间以及数据的总和。
但是,在尝试按符号分组时,我遇到了障碍,并且我不确定如何获取每个符号的最早数据时间,并且感谢您提出的任何建议。
我的数据如下所示:
日期时间 | 符号 | 价值 |
---|---|---|
1/1/20 凌晨 2 点 | A | 2 |
20年1月1日中午12点 | A | 5 |
20年1月1日下午3点 | A | 1 |
20年1月1日晚上9点 | A | 4 |
1/1/20 凌晨 2 点 | B | 1 |
20年1月1日中午12点 | B | 3 |
20年1月1日下午3点 | B | 6 |
20年1月1日晚上9点 | B | 9 |
我正在尝试如何制作一张看起来像这样的桌子:
日期时间 | 符号 | 价值 |
---|---|---|
1/1/20 凌晨 2 点 | A | 12 |
1/1/20 凌晨 2 点 | B | 19 |
这是我目前拥有的:
update Sum: sums (sums;Value) fby Symbol from TABLE
但这只是复制表格并在其右侧添加一个名为“Sum”的列,按“符号”对先前的金额求和。请注意,这也不会尝试获取每个符号的第一个日期时间值。
我也尝试过这个:
update (NEW: sum Value by Symbol) by DateTime from TABLE
我的想法是,这可能会得到按符号列出的所有值的总和,然后我可以保留每个符号的最早日期时间,在此过程中创建一个名为 NEW 的表,但这根本不起作用。当我运行这个时,它给了我一个错误,说“by”关键字不知何故不正确:
[0] update (NEW: sum Value by Symbol) by DateTime from TABLE
^
我感谢 kdb/q 社区的任何帮助。我希望我有足够的经验来理解错误消息。我觉得 fby 很有帮助,但这可能只是向相关表添加新列,所以不确定是否有其他函数对我的情况有帮助。
和你昨天的问题类似,通过一句话就能达到你想要的效果:
select min DateTime, sum Value by Symbol from TABLE