Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.0k views
in Technique[技术] by (71.8m points)

筛选数据去重

image
如上图,数据多插入了一次,
第一个问题:能根据datetime字段删除重复数据,只保留一条么?
第二个问题:筛选的时候,重复数据怎么只筛选一条?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

是分布式表吗?若要去除分布式表中的重复记录,可以使用context by子句在查询时去重。

context by是DolphinDB独有的功能,是对标准SQL语句的拓展。context by与group by类似,都对数据进行分组,但是使用group by时,每一组返回一个标量值,而使用context by时,每一组返回一个和组内元素数量相同的向量。context by与limit一起使用能够获取表中每个分组前n条记录或最后n条记录。用context by去重的例子如下:

select * from sensors where datetime between 2020.11.01T00:00:00 : 2020.11.03T23:59:59 context by datetime limit -1

上述代码limit后面为负数,表示取每个分组的最后一条记录。

数据库里面去重,可以把分区数据读到内存表后,按上述方法去重,然后把分区删除,再把去重后的结果集插入表中。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...