我有一个数据库表,其中包含以下列:regularization_dt,modified_dt和account_id。对于特定帐户更新时的特定情况,会在表格中添加一个条目,其中包含regularrization_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;
答案 0 :(得分:0)
听起来您想要使用聚合函数和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的重复数据删除行。