谭华
谭华

性别: 注册于 2024-01-26

向TA求助
20金币数
130 经验值
0个粉丝
主页被访问 57 次

最近动态

2024-01-31 11:27 回答问题

2.解决方案 我们可以把这两个半个小时的数据单独拎出来,与其他数据分开计算, 最后再将所有计算结果用UNION拼接起来。 数据制造: n = 1000000 date = take(2019.01.01..2019.01.15,n) time=(09:30:00.000 + rand(2*60*30*1000, n/2)).sort!() join (13:30:00.000 +rand(2*60*60*1000 , n/2)).sort!() timestamp= concatDateTime(da

2024-01-31 11:23 回答问题

解决方案: 将kv键值对转换为两列的table,再进行where条件过滤。 n=1000000 id = 1..n value = rand(100, n) z=dict(id, value) t=table(z.keys() as key,z.values() as value) t[t.value > 80] 性能测试 对于只有两列的数据,如果是通过value找key,dict暂无比较好的实现方案; 如果是通过key找value,我们做了如下性能测试,可以看出使用table的方案性能

2024-01-31 11:18 回答问题

实施方案 删除指定分区方法:dropPartition 方案一:hash分区,dropPartition指定路径删除分区: def dropCodeData(dbName, tableName, code,day){ cnt = exec count(*) from loadTable(dbName, tableName) where date=day, ID=code if(cnt==0) return; t = select * from loadTable(dbName,

2024-01-31 11:11 回答问题

实现方案 方案一: iif(cond, trueResult, falseResult) cond 是布尔标量、向量或矩阵。可为产生布尔标量、向量或矩阵的表达式。 trueResult 和 falseResult 可以是标量、与 cond 等长的向量或与 cond 维度相同的矩阵。 如果 cond[i] 为 true,它返回 trueResult(cond[i]);否则它返回 falseResult(cond[i])。 当 cond[i] 为NULL值时,返回的结果也是 NULL 值。 b =

2024-01-31 11:08 回答问题

解决方法: msum(X, window, [minPeriods]) 在给定长度(以元素个数或时间长度衡量)的滑动窗口内计算 X 的元素和。 n = 100000 id = 1..n flag = rand(100, n) t = table(id, flag) select id, move(msum(id, 4),-3) from t   代码简化: move(t.id.msum(4),-3) 3.性能分析 实施方案耗时msum5.42 ms

2024-01-31 11:04 回答问题

解决方案 利用interval函数,按照duration进行窗口滑动,并且可以选择遇到空值的处理方案,本问题是选取前一个有效k线来代替没有值的K线。 interval函数详情如下 在 SQL 语句中,构建涵盖 X 所有数据的连续窗口以进行计算,其中每个窗口长度为 duration。对无数据的组,根据 fill 参数指定的方式填充缺失的计算结果。该函数只能在 SQL 的 group by 子句中使用,以实现插值查询,不能单独使用。 3.代码展示 数据: n = 1000000 date = tak

2024-01-29 09:05 回答问题

代码简化: tb = table(rand(1 2 3 , 10) as id, rand(1.5, 10) as price)defg maxDrawDown(price): max(1.0 - price\price.cummax())select maxDrawDown(price) as group_max_drawdown from tb group by id

2024-01-29 09:02 回答问题

.解决方案 取连续合约数据,可以对表A中的每一行,分别提交一个query,最后用union合并 3.实现代码 数据: TradingDay = 2020.03.01..2020.04.01 Instrument = take(`IF1911`IF1912`IF1913`IF1914`IF1915, 32) db = database("dfs://dict",VALUE,2020.03.01..2020.04.01) dbSchema = table(1:0,`TradingDay`Instrume

2024-01-29 08:59 回答问题

数据 n=1000000 ID=rand(150, n) dates=2017.08.07..2017.08.11 date=rand(dates, n) x=rand(`a`b`c`d`e, n) t=table(ID, date, x) dbDate = database(, VALUE, 2017.08.07..2017.08.11) dbID = database(, RANGE, 0 50 100 150) db = database("dfs://compoDB", COMPO, [dbDat

2024-01-26 18:31 回答问题

使用percentileRank 函数进行计算 a=[1,2,3,4,5,6,7,8,9,10] percentileRank(a,5) 性能对比 代码: def findPercent(x, ele) { return sum(ele>=x) \ x.size() } n = 1000000; a = 1..n // dolphindb内置函数percentileRank: timer(10) c = percentileRank(a, 1000) // 自定义函数 timer(10