|
|
1
4
我不知道Postgres,但这是标准的SQL,可能对您有用。
换言之,如果在以后的日期同一用户的ID有三个或更多条目,请将“已处理”列更新为“真”。我假设[创建的]列对于给定的用户ID是唯一的。如果不是,您需要一个额外的条件来确定您所说的“最新”是什么意思。 在SQL Server中,您可以这样做,这样更容易执行,而且执行效率可能更高:
更新CTE是一项非标准功能,并非所有数据库系统都支持行号。 |
|
|
2
4
首先,让我们从列出所有要更新行的查询开始:
这将列出所有记录的ID,这些记录有两个以上的这样的记录,用户ID相同,但创建的记录晚于要返回的行中创建的记录。 也就是说,它将列出除每个用户最后3条以外的所有记录。 现在,我们可以:
有一件事是想的——它可能很慢。在这种情况下,您最好使用自定义聚合,或者(如果您使用的是8.4)窗口函数。 |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
|
Peter Schofield · 类型转换Postgresql 1 年前 |
|
|
Kevin Smeeks · Pyspark JDBC分区读取 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |