对于max filter,KDB查询返回的列数超过2列,而不是1列

对于max filter,KDB查询返回的列数超过2列,而不是1列,kdb,Kdb,我只想创建一个报告,其中我需要每个符号的最大价格,所以我编写了以下查询,该查询在PROD上运行良好,但在UAT上失败。所以我只是想知道下面的查询是否合适 从日期在2019.12.01的表格中选择sym、time、src的总价;2019.12.31,其中尺寸=最大值;按层级定价 上面的查询为每个符号返回2列,而不是1列。以下是内部查询的结果,即从日期在2019.12.01的表中选择sym、time、src的总价;2019.12.31 并从表中的sym、time、src选择总价,其中日期为2019.

我只想创建一个报告,其中我需要每个符号的最大价格,所以我编写了以下查询,该查询在PROD上运行良好,但在UAT上失败。所以我只是想知道下面的查询是否合适

从日期在2019.12.01的表格中选择sym、time、src的总价;2019.12.31,其中尺寸=最大值;按层级定价

上面的查询为每个符号返回2列,而不是1列。以下是内部查询的结果,即从日期在2019.12.01的表中选择sym、time、src的总价;2019.12.31

并从表中的sym、time、src选择总价,其中日期为2019.12.01;2019.12.31,其中尺寸=最大值;按级别划分的价格为:


我怀疑您在问题中提供的数据集缺少某些内容。内部查询的结果都是带余数的浮点,因为size是一个long,size=max没有任何意义;普莱斯正在返回任何结果

从最一般的意义上回答您的问题,通过sym获得最高价格是

select from t where price=(max;price) fby sym
将此应用于您提供的内部结果

q)select from t where price=(max;price) fby sym
time                          sym  src price size
-------------------------------------------------
2019.03.11D09:00:08.000000000 MSFT N   35.5  7810
2019.03.11D09:00:00.000000000 GOOG L   39.01 1427

你能澄清一下什么是层次吗?逻辑尺寸=最大值;价格没有多大意义。此外,by子句中可能有太多内容。需要更多详细信息,因为sym的最高价格很简单:从日期在2014年4月21日的交易中选择sym的最高价格;2014.04.30我强烈怀疑这个问题没有在这里得到正确的复制和描述。从您提供的表t中,没有price=size的实例。假设这不是正确的数据集,试图找到价格浮动总和=到一个长的位置似乎是不明智的。
select from t where price=(max;price) fby sym
q)select from t where price=(max;price) fby sym
time                          sym  src price size
-------------------------------------------------
2019.03.11D09:00:08.000000000 MSFT N   35.5  7810
2019.03.11D09:00:00.000000000 GOOG L   39.01 1427