我有一张大约300,000行的表格。自2015年3月16日至2015年7月9日,每天有225行添加到此表中
我的问题是,从过去1周左右开始,表格中输入了一些重复的行(即每天超过225行)
现在我想选择(并最终删除!)表格中所有重复的行,这些行在一个日期列中存在多于1个siteID + reportID组合。
屏幕截图中附有示例:
答案 0 :(得分:0)
如果您想过滤重复的行,我建议您使用此类查询:
SELECT *
FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY siteID, reportID, [Date] ORDER BY ID) As seq
FROM yourTable) dt
WHERE (seq > 1)
像这样:
abstract class A {}
class B extends A {}
class C {
public void show(A a) {}
}
答案 1 :(得分:0)
当Row_Number()与Partition By子句一起使用时,它可以让SQL开发人员在表中选择重复的行
请查看how to delete duplicate rows in SQL table上的SQL教程 以下查询是从该文章中复制并应用于您的要求的内容:
;WITH DUPLICATES AS
(
SELECT *,
RN = ROW_NUMBER() OVER (PARTITION BY siteID, ReportID ORDER BY Date)
FROM myTable
)
DELETE FROM DUPLICATES WHERE RN > 1
我希望它有所帮助,