symbol = [`A,`B,`C,`A]
date = [2020.07.01,2020.07.01,2020.07.01,2020.07.01]
t = table(symbol,date)
//方法1 去重后数据个数
p = select count(*) from t group by symbol,date
size(p)
//方法2 适用内存表,总数减去重复的行数
t.size() - isDuplicated([t.symbol, t.date]).sum()
// 方案一:去重后数据个数
size(SELECT count(*) FROM t GROUP BY symbol, date)
// 方案二:适用内存表,总数减去重复的行数
t[!isDuplicated([t.symbol, t.date])].size()
性能测试
数据量:10,000,000 行 x 2 列的表
测试方案:通过 timer 函数统计10次计算的耗时,计算单次平均耗时
测试结果
方案一:0.23s
方案二:0.64s
数据构造:
n = 10000000 symbol = rand(`a`b`c, n) date = 2020.01.01 + rand(366, n) t = table(symbol, date)