从表中删除具有最大日期的行

Posted

技术标签:

【中文标题】从表中删除具有最大日期的行【英文标题】:Delete rows with max Date from a table 【发布时间】:2021-01-30 05:28:56 【问题描述】:

flag ='N'(current_dt - vl_dt) > 15 yrs 时,我需要从表table1 中删除行。 虽然flag=y 甚至(current_dt - vl_dt) > 15 yrs 都不应该删除行。 任何人都可以在netezza中帮助撰写这篇文章

table1 emp vl_dt 标志 一个 01-01-2020 是 一个 09-01-2005 否 一个 05-02-2010 否 b 01-01-2010 否 b 09-01-2005 否

【问题讨论】:

emp vl_dt flag emp1 01-01-2020 Y emp1 09-01-2005 N emp1 05-02-2010 N emp2 01-01-2010 N emp2 09-01-2005 N 你写的代码是什么,请分享 delete from table1 where emp in ( select emp from table1 A join ( select emp,max(vl_dt) as vl_dt from table1 where flag='N' group by emp)b using (emp) where A .vl_dt =b.vl_dt and (current_dt-A.vl-dt)/365.25 >15 and A.flag ='N') 【参考方案1】:

从 table1 中删除 flag = 'N' and current_dt > (vl_dt + interval '15 years');

【讨论】:

以上是关于从表中删除具有最大日期的行的主要内容,如果未能解决你的问题,请参考以下文章

SQL选择具有最大和最小日期的行

用于从表中选择具有最新时间戳的行的 JOOQ 代码

删除除具有最大值的行之外的所有行

提取具有多个日期的行的最小最大日期

根据日期和在 Snowflake 中的另一个表中为该日期列出的最大行数限制插入到表中的行

从表中返回加起来达到最大给定值的项目