我有一个数据库表,其中包含以下列regularization_dt、modified_dt和account_id。对于特定的帐户,每当更新帐户时,都会向表中添加一个条目,其中包含regularization_dt和account_id的新modified_dt。
我想要一个SQL查询来删除重复的正则化。根据最近的modified_dt,只能选择一个用于正则化的条目。
例如,表中的条目如下:
regularization_dt | account_id | modified_dt
----------------- | ---------- | ----------
03-28-2013 | 123 |05-26-2014
03-28-2013 | 123 |01-14-2014
05-26-2014 | 123 |05-25-2014生成的查询应该会生成:
regularization_dt | account_id | modified_dt
----------------- | ---------- | ----------
03-28-2013 | 123 |05-26-2014
05-26-2014 | 123 |05-25-2014如何删除基于不同列的重复列?
select * from history where account_id = 123;发布于 2014-10-21 23:44:30
听起来您想要使用聚合函数和GROUP BY:
SELECT regularization_dt,
account_id,
MAX(modified_dt) as modified_dt
FROM yourtable
GROUP BY regularization_dt,
account_id;对于具有相同regularization_dt和account_id列值的行,这应返回仅包含最新modified_dt的已消除重复数据的行。
https://stackoverflow.com/questions/26490547
复制相似问题