可以嵌套查询,例如: t1=table(1..3 as id,1..3 as value1) t2=table(1..3 as id,1..3 as value2) t3=table(1..3 as id,1..3 as value3) lj(lj(t1,t2,`id),t3,`id)
回答于 2021-05-20 19:58
第一次执行时只运行了if部分,说明表quote存在,然后在if语句内把它删除了。第二次执行时,表被删除了,即不存在了,所以进入else分支。
回答于 2021-05-20 19:57
一般的脚本语言都是逐条解释执行的。但这容易导致一个问题,运行时出现语法错误。所以DolphinDB database运行时,会对一段脚本先进行整体解析,如果有语法问题,譬如变量未定义,函数不存在,函数参数个数不正确等问题,直接报syntax error。如果没有问题,开始逐条执行。DolphinDB不一样,是先解析所有脚本,列出所有变量...
回答于 2021-05-20 19:57
t=table(1 as id,1.0 as EG1,2.0 as EG2,3.0 as EG3) t1=select id,EG1 as EG from t t2=select id,EG2 as EG from t t3=select id,EG3 as EG from t unionAll([t1,t2,t3],false)
回答于 2021-05-20 18:15
在dolphindb中,Vector有两种存储模式,一种是FastVector模式,数据存储在连续的内存块中;另一种是Big array模式,数据分段存储在多个不连续的内存中。一般而言,当Vector的大小超过1048576时,Vector会切换到Big array模式。 getDoubleBuffer方法一般情况下会直接返回内部地址,只有在区间[start, start + len)跨越Big a...
回答于 2021-05-20 18:13
我试了一下以下代码 data=table(1..3 as id,4..6 as value) new_data=data.copy() update new_data set value=value+1 update data set value=value+2 new_data从data拷贝后,对data或new_data操作,都互不影响对方。你要的深复制是什么样的?
回答于 2021-05-20 18:12
DolphinDB API的处理问题的方式是抛出异常,因此需要try catch一下exception,比如: try { Entity entity = conn.run(saveFuncName, args); } catch (exception &ex) { cout << "Failed to run with error: " << ex.what(); return -1; }
回答于 2021-05-20 18:10
timer是个语句,输出的时间只能在GUI,Console中能看到,使用api是看不到的。如果你想查看某一段脚本的执行时间,并输出到python api,可以尝试使用evalTimer函数 evalTimer(funcs, [count=1]) 参数funcs可以指定多个要执行的函数(0参数的函数),count指定重复次数。关于函数的具体使用可以参考在线帮助 https://www.do...
回答于 2021-05-20 18:09
分布式表的操作请使用sql语句。 select count(*) from t1 或 select count(*) from loadTable('dfs://db02','table01')
回答于 2021-05-20 17:39