如何检查记录是不是更新?

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

【讨论】:

以上是关于如何检查记录是不是更新?的主要内容,如果未能解决你的问题,请参考以下文章

检查记录是不是存在,如果是,则“更新”,如果不“插入”

如何使用ID检查记录,如果记录存在则更新如果不添加新记录

如何检查延迟位置更新是不是有效?

更新记录:如何检查新文件是否已上传PHP

在创建新记录之前如何检查记录是不是已经存在?

如何检查传入的 JSON 提要是不是包含单条记录或多条记录?