从Q提示符中,例如我们可以运行,
x: select from table
.j.j x
我如何返回json格式的http url get请求(例如host:port/?select from table)对kdb get服务器的表结果,而不是纯文本?
我可以获得文本格式的表结果并解析html响应,但我更喜欢从json格式的http服务器本身获得结果。
谢谢
我想为我的表中的一个列创建一个嵌套列表,但我不确定要使用什么语法。例如,如果我有下表..。
q)t:([]submitter:`A`B`C; code:3?100; status:110b)
q)t
submitter code status
---------------------
A 2 1
B 39 1
C 64 0
我想做一些类似于下面的事情。但是,这将向表中添加额外的列x,并将值放在那里,而不是为code列创建一个复合列表.
q)update code,:77 from t where status<>1b
当我使用meta tableName检查.get类型时,结果如下:
c t f a
`description "C"
现在我想知道"c"类型和"C"类型之间的区别。以及如何将"c"类型转换为"C"。
根据下面的解释,当表中有"c“类型时,我可以将其转换为"C”类型。我的新问题如下: table1:
([ID:`1`2`3]Name:`A`B`C;Client:`P`Q`S;Species:`setosa`setosa`setosa ;
我有一张由"a.b“栏组成的表
q)t:([]a.b:3?10.0; c:3?10; d:3?`3)
如何从表t中选择列a.b和c?
如何将列a.b重命名为b?
在没有功能选择的情况下,是否有可能达到上述两种情况?
Failed attempts:
q)select a.b, c from t
'type
q)?[`t;();0b;enlist (`b`c!`a.b`c)]
'type
q)select b:a.b from t
'type
我正在试用关于如何连接在中找到的两个表的示例
这个例子显示:
t:([]a:1 2 3;b:`a`b`c)
r:([]c:10 20 30;d:1.2 3.4 5.6)
show t,`r
其结果是:
a b c d
----------
1 a 10 1.2
2 b 20 3.4
3 c 30 5.6
然而,当我在我的Q控制台中尝试时,我得到了这样的结果:
q)t,`r
`a`b!(1;`a)
`a`b!(2;`b)
`a`b!(3;`c)
`r
有人能解释一下发生了什么,我做错了什么吗?
让我们假设我有一个名为“汽车”的KBD表,其中包含以下数据:
Manufacturer Country Sales Id
Mercedes United States 002
Mercedes Canada 002
Mercedes Germany 003
Mercedes Switzerland 003
Mercedes Japan 004
BMW United S
免责声明:我是Q语言的新手,所以请原谅我这个愚蠢的问题。我有一个函数,目前有两个参数(date;sym ),.It在1sym和1天内运行良好。然而,我需要在多个syms和dates上执行此操作,这将需要永远。如何创建一个在每个sym和每个日期运行该函数的循环?在python中,它很简单:
for date in datelist:
for sym in symlist:
func(date,sym)
我如何在Q中做类似的事情呢?如何动态更改输出表的名称并将其附加到单个表中?
目前,我正在使用以下内容:
output: raze .[function] peach par
有一个有列的表,我想把它分解成多个记录。例如
q)tab:([]a:1 2 3;b:(`a;`$"b c";`d);c:2 3 4)
q)tab
a b c
-------
1 a 2
2 b c 3
3 d 4
在b和c之间有一个空格,在b列的第二个条目中,我希望表成为
a b c
-----
1 a 2
2 b 3
2 c 3
3 d 4
我试过
" " string vs exec b from tab
但没起作用。
有什么想法吗?
给你一点背景知识。我有一个过程来完成这个大型的复杂计算,需要一段时间才能完成。它是按计时器运行的。经过一些调查,我意识到导致速度缓慢的不是实际的计算,而是内部的Q函数,联合。
我正在尝试联合两个简单的表,表A和表B。A大约是5m行,B是500行。两个表都只有两列。第一列是一个符号。表A实际上是一个表的复合主键。(另外,如何直接从控制台复制?)
n:5000000
big:([]n?`4;n?100)
small:([]500?`4;500?100)
\ts big union small
我尝试了两个列和upserting,join,然后distinct,"big,small whe
难以从不同的名称空间访问表。我有这样的功能:
\d .myns
myfunc:{[]
/\d / shows .myns when run manually (would love to have a ".Q.d" to run it programmatically)
if[not `mytable in tables `. ; .Q.l `$"/mypath/hdb" ];
/if[not `mytable in tables `. ; '".myns.myfunc could not load mytable in `.
我在kdb/q中有一个函数声明:
q)func_demo:{[time1;time2] select from t where time within(time1 time2)}
时间的数据类型是v。这个查询工作得很好。
我将两次传递到函数中:
q)func_demo[13:00:00 13:00:02]
但是控制台中没有显示表,它给我的结果如下:
{[time1;time2] select from tt where tp_time within(time1 time2)}[13:00:00 13:00:02]
有人能给我一些建议如何处理这个问题吗?这是因为当我传入参数时,没有将13:00:
我正在尝试修改kdb-tick架构,以支持传入数据和本地rdb表上的联合连接。我已经将tick.q文件中的upd函数修改为:
ups:{[t;x]ts"d"$a:.z.P;
if[not -16=type first first x;a:"n"$a;x:$[0>type first x;a,x;(enlist(count first x)#a),x]];
f:key flip value t;pub[t;$[0>type first x;enlist f!x;flip f!x]];if[l;l enlist (`ups;t;x);i+
我有一个表t,根据这个表,我必须给变量v赋值。 q)t:([] sym:`goog`amzn; px:100 200);
q)v:$[count dv:exec distinct sym from t where px=101;dv;enlist`default];
/ return distinct syms in case of satisfied condition from t as return enlist symbol. 有没有一种方法可以使条件代码简洁?(通过去除临时变量dv或任何其他替代方法)