2017-06-03 14 views
0

私は世界のすべての都市を持つデータベースを持っています。私はすでに、すべての重複行を削除するには、このクエリを使用しSQL:節が重複する行を削除します

enter image description here

WITH CTE AS 
(
SELECT *,ROW_NUMBER() 
OVER (PARTITION BY Country, City, AccentCity, Region, Population, latitude, Longitude 
ORDER BY Country, City, AccentCity, Region, Population, latitude, Longitude) AS RN 
FROM ExperimentWorld 
) 

DELETE FROM CTE WHERE RN<>1 

私は今それを再度実行します

は、私はthisクエリを実行する場合、私は見ることができますダブルスがありますlatitudeLongitudeが同じであるすべての列を削除します。上の図のように2つの行が同じ場合、私は​​に値を持ちます。この文字列で検索してください​​'0'

+0

は、where句を追加します。 ...人口<1と.... – scsimon

答えて

2

のものを削除 -

;WITH CTE 
AS (
    SELECT * 
     ,ROW_NUMBER() OVER (
      PARTITION BY Country 
      ,City 
      ,AccentCity 
      ,Region 
      ,Population 
      ,latitude 
      ,Longitude ORDER BY Population DESC 
      ) AS RowNum 
    FROM ExperimentWorld 
    ) 
DELETE 
FROM CTE 
WHERE RowNum > 1 
+0

はい、それは働いて、私は編集し、ちょうど '緯度、経度'を選択していたが、 –

関連する問題