如何检查记录是不是更新?
Posted
技术标签:
【中文标题】如何检查记录是不是更新?【英文标题】:How to check if record is updated?如何检查记录是否更新? 【发布时间】:2017-12-07 02:32:33 【问题描述】:我正在尝试获取前一周的更新记录数。但我无法解决这个问题。
例如:我有一个表'Org'
第 1 周:
id name age address date
record1 : 123 Joe 35 xyz 12/01/2017
第 2 周:
id name age address date
record1 : 123 Joe 35 abc 12/03/2017
我正在尝试获取已更新的记录。在上面的示例中,id 为 123 的 record1 的地址已更新。目前我正在以一种低效的方式进行检查。
查询:
select * from Org where date='12/01/2017'
和
select * from Org where date='12/03/2017'
查询:
select distinct on (id) count(*) from Org group by Org.id
每天都有一个文件被推送到数据库。因此,更新后的记录将有一个新的时间戳,并且记录会加班加点聚合,这让我的工作变得更加困难。我尝试将表格加入到自身中,但这对我来说没有任何意义。我不确定如何解决这个问题。我正在尝试并几乎达到解决方案,但我不明白为什么我要计数两次。 Example Fiddle
【问题讨论】:
您要原始记录还是更新记录?鉴于记录已更新。对于以后的转储,数据库是否仅在有更新时才存储记录,或者即使自上一个版本以来没有变化,它也会保留记录?如果不了解您系统的这些功能,我们将无法帮助您解决问题。 我想要更新的计数。即使没有更新,数据库也会存储每条记录。到目前为止,我使用正在尝试的查询编辑了问题,但仍然没有得到正确的数字。 【参考方案1】:试试这个查询:
select col1
from(
select distinct col1,col2,col3,col4
from table_not
)D
group by col1
having count(1)>1
SQL 小提琴链接:SQL Fiddle
【讨论】:
以上是关于如何检查记录是不是更新?的主要内容,如果未能解决你的问题,请参考以下文章