我在 postgres 数据库中收集了大量数据,我想在其中对特定年龄的数据进行核对......但我不希望它对来自任何给定位置和站点组合的最新数据迭代进行核对。
基本上,我有一个非常大的表,其中有一个location (bigint)
, site (bigint)
,readdate (bigint)
和一些附带的数据(注意:给定站点、位置和 readdate 会有多个条目 - 但同一个 readdate 上的任何内容都被认为是相同的扫描,并且需要保留在给定的位置)。
目前,我刚刚将其设置为摆脱所有旧记录......但是存在特定站点和位置组合将停止提供数据一段时间的可能性,如果我想保留最终状态那个会发生。我正在从 php 执行 SQL 查询,所以我很确定我可以将一些非常丑陋的代码组合在一起,找到任何给定站点和位置组合的最新读取日期,然后删除比该位置更年轻的内容,或者删除基于日历限制(以较小的日期为准),但我更愿意将决策工作量放在 SQL 查询中,而不是必须首先获取所有位置、站点和 max(readdate) 条目的列表,然后在 php 中对它们进行迭代,进行单独的删除查询。
我当前的查询(它没有做我想要的,因为它删除了 $limit 之前的所有内容)由以下声明声明:
$query="DELETE FROM votwdata WHERE readdate < '".$limit."';";
- 有什么好的修改的想法吗?