kdb+ Q如何查询表中指定列等于特定值的所有行
kdb+ Q语言等值查询说明
你编写的基础查询语句语法完全正确,将占位符替换为实际的表名、列名、目标值即可运行:
select from tablname where columnvalue = value
举个实际可运行的参考示例:查询trade交易表中,股票代码sym等于IBM的全部行,写法如下:
select from trade where sym = `IBM
常见使用注意事项
- Q语言对大小写敏感,表名、列名、符号类型值的大小写需要和实际存储完全一致才能匹配到结果
- 不同类型的目标值写法有区别:
- 符号类型(kdb+常用的枚举类值)需要加反引号前缀,比如
`IBM - 字符串类型需要用双引号包裹,比如
"test value" - 数值、日期等类型直接写原值即可,比如
100、2024.05.20
- 符号类型(kdb+常用的枚举类值)需要加反引号前缀,比如
- 多条件查询直接在where子句后用逗号分隔条件即可,示例:
select from trade where sym = `IBM, date = 2024.05.20, price > 100 - 如果要匹配多个目标值,使用
in操作符,示例查询sym为IBM或GOOG的全部行:select from trade where sym in `IBM`GOOG - 大数据量查询时,如果过滤列设置了sorted/partitioned等表属性,查询效率会有数量级提升,高频过滤场景建议给对应列添加属性。
内容的提问来源于stack exchange,提问作者bigdog123
相关产品推荐
相关产品推荐

