筛选数据去重

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

阅读 2.3k
1 个回答

是分布式表吗?若要去除分布式表中的重复记录,可以使用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后面为负数,表示取每个分组的最后一条记录。

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进