我想从我的数据库中删除重复的行,这些行共享一些相同的列,但不是所有的列。到目前为止我的代码:
SELECT sfb_id, prs_id_201304, prs_id_201204, vorname, nachname, sex, gebdat, strasse, hausnummer, ort, plz, beg_dat, end_dat, quelle
INTO #duplicates
FROM [Recordlinkage].[dbo].[2012]
GROUP BY vorname, nachname, hausnummer, ort, plz
HAVING COUNT(*) > 1
-- delete all rows that are duplicated
DELETE FROM [Recordlinkage].[dbo].[2012]
FROM [Recordlinkage].[dbo].[2012] o INNER JOIN #duplicates d
ON d.vorname= o.vorname and d.nachname=o.nachname and d.hausnummer=o.hausnummer and d.ort=o.ort and d.plz=o.plz
INSERT INTO [Recordlinkage].[dbo].[2012] (vorname, nachname, hausnummer, ort, plz)
SELECT sfb_id, prs_id_201304, prs_id_201204, vorname, nachname, sex, gebdat, strasse, hausnummer, ort, plz, beg_dat, end_dat, quelle
FROM #duplicates
我只想删除在 vorname、nachname、hausnummer、ort und plz 中相同的重复项。我测试它只选择这组变量。它有效,但我错过了之前未选择的所有其他列中的信息。