微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在PostgreSQL数据库中的几个条目中仅保留一个条目

如何解决如何在PostgreSQL数据库中的几个条目中仅保留一个条目

我有一个监视网络的数据库(快照表,其中包含snapshot_date列)。错误的crontab淹没了该生产数据库,每天为同一设备生成许多快照。

enter image description here

我不会删除所有内容,但我想每个快照_日期和每个device_id仅保留一个快照(列类型为“没有时区的时间戳”),以减少此表中的条目数。 / p>

我不知道任何简单的机制可以在普通sql中执行此操作。能做到吗?

解决方法

一个选项使用<title>

distinct on

这将保留select distinct on (snapshot_date,device_id) * from mytable order by snapshot_date,device_id,snapshot_id snapshot_date中每一行中具有较小device_id的一行。请注意,这假设snapshot_id是唯一的(或至少对于每个snapshot_id元组都是唯一的)。

如果您想要(snapshot_date,device_id)语句,则:

delete

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。