【发布时间】:2016-06-01 13:55:06
【问题描述】:
我对 SQL 和 Stackoverflow 还很陌生,所以请原谅我的帖子的布局。 目前,我正在努力将以下工作流程放入可执行的 SQL 语句中:
我有一个包含以下列的表格:
- ID(不唯一)
- PARTYTYPE(1 或 2)
- 日期栏
- 其他几个不相关的列
现在我需要找到那些具有相同 ID 和相同 PARTYTYPE 但不是最新的观察(行),即 DATE 列中的日期小于给定 PARTYTYPE 组合的最新日期和ID。满足此条件的行需要移动到具有相同表方案的另一个表中才能归档。
在 SQL 中是否有一种高效而简单的方法来完成此任务? 找了很久,但是因为涉及到在特定条件下查找重复项并将其插入到表中,所以这是一个相当具体的问题。
这是我目前所拥有的:
INSERT INTO table_history
select ID, PARTYTYPE, count(*) as count_
from table
group by ID, PARTYTYPE, DATE
having DATE = MAX(DATE)
任何帮助将不胜感激!
【问题讨论】:
标签: sql duplicates insert-into