【问题标题】:How do I write multi-line queries in KDB?如何在 KDB 中编写多行查询?
【发布时间】:2021-07-31 10:46:41
【问题描述】:

目前,我的查询正在扩大,而且只会越来越长:

m: ungroup select date, c, prevClose: prev c, prevVolume: prev v, premarketGap: log[o % prev c], t1Range: log[(prev h)%(prev o)], t1Return: t1Log[c], t5Return: tXreturn[5;1;c], t25Return: tXreturn[25;6;c], t250Return: tXreturn[250;31;c], targetH: log[h%o], targetL: log[l%o], targetC: log[c%o] by sym from daily;

我尝试使用; 和缩进将其分成多行,但无论我做什么,它似乎都不喜欢它。

我使用 KX Developer 作为界面。

如何将查询拆分为多行?

【问题讨论】:

标签: kdb


【解决方案1】:

如果您在.q 文件中编写多行查询,则以下每一行至少需要一个空格才能执行查询。即

m:ungroup select date, c, prevClose: prev c, 
  prevVolume: prev v, premarketGap: log[o % prev c], 
  t1Range: log[(prev h)%(prev o)], t1Return: t1Log[c], 
  t5Return: tXreturn[5;1;c], t25Return: tXreturn[25;6;c], 
  t250Return: tXreturn[250;31;c], targetH: log[h%o], 
  targetL: log[l%o], targetC: log[c%o] 
    by sym from daily;

(我再次缩进 by 子句,因为它更易于阅读并遵循推荐的 SQL 语法)。

【讨论】:

  • 唉,我得到了错误:from: Badly formed select statement - 截图在这里:imgur.com/a/tnSasLX
  • 可能是一个愚蠢的问题,但查询是否在一行中执行?
  • 是的;它只是变得笨拙,因为查询跨越了几个屏幕!我在文档中找不到任何证据表明甚至可以进行多行查询。
  • 因为这是一个 kx 产品,我建议在 kx 社区发帖寻求帮助:community.kx.com
猜你喜欢
  • 2021-12-15
  • 1970-01-01
  • 2014-05-24
  • 2015-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多