什么情况下q语言查询的table(98h)会转为dictionary(99h)
问题原因
你遇到的是kdb+ q语言的内置规则:
- 99h类型对应q中的键控表,其底层实现为字典结构,因此类型标识和普通字典一致为99h
- 当
select语句携带by子句执行分组查询时,只要by后指定的分组列取值唯一且按升序排列,q就会默认返回键控表而非普通无键表(98h),该行为和输入数据源的类型无关。
修复方案
如果需要输出98h类型的普通表适配后续代码,只需对查询结果使用0!操作符移除键即可,修改后的查询语句如下:
returns: 0! select s: avg (target1 * signum p), l: avg(lR) by date from z
执行后returns就会变为98h类型的普通无键表。
内容的提问来源于stack exchange,提问作者cjm2671
相关产品推荐
相关产品推荐

