SQL:使用子句删除重复的行
我有一个世界上所有城市的数据库 如果我运行查询,我可以看到有两个: 我已经使用此查询删除了所有重复的行:SQL:使用子句删除重复的行,sql,sql-server,Sql,Sql Server,我有一个世界上所有城市的数据库 如果我运行查询,我可以看到有两个: 我已经使用此查询删除了所有重复的行: WITH CTE AS ( SELECT *,ROW_NUMBER() OVER (PARTITION BY Country, City, AccentCity, Region, Population, latitude, Longitude ORDER BY Country, City, AccentCity, Region, Population, latitude, Longitu
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
现在,我将再次运行它并删除纬度和经度相同的所有列,如果两行与上图中的相同,我希望保留人口有一些值的列,并删除人口为“0”的列尝试此查询-
;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
请尝试此查询-
;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
添加where子句。从cte中删除,其中。。。人口<1,…添加where子句。从cte中删除,其中。。。人口<1,…是的,它起作用了,我编辑并选择了“纬度,经度”是的,它起作用了,我编辑并选择了“纬度,经度”