开发者社区> 问答> 正文

在没有主键的情况下从SQL删除表中的重复项

我正在尝试从表中删除重复项,例如:

Country State   City    Rate1   Rate2   Rate3
US      CA     Irvine   1       13      22
US      CA     Irvine   0       0       0
US      WA     Seattle  1       231     22

US WA Seattle 0 0 0 我正在尝试删除所有费率列= 0的重复记录

因此,我想删除以下行:

Country State   City    Rate1   Rate2   Rate3
US      CA     Irvine   0        0      0
US      WA     Seattle  0        0      0

以下查询的变体:

WITH CTE AS(
SELECT myTable.*
, RN = ROW_NUMBER()OVER(PARTITION BY patientID ORDER BY ID)
FROM myTable 
)
SELECT * FROM CTE
WHERE RN = 1

展开
收起
祖安文状元 2020-01-05 17:57:05 524 0
1 条回答
写回答
取消 提交回答
  • 好的...类似:

    WITH CTE AS(
    SELECT 
        myTable.*,
        RN = ROW_NUMBER()OVER(PARTITION BY Country, State, City ORDER BY Rate1 DESC)
    FROM myTable 
    )
    DELETE FROM CTE
    WHERE RN <> 1
    
    

    邓诺您想订购的物品...您如何确定要删除哪些重复物品?在此示例中,它将删除Rate1低于最大值的所有内容

    2020-01-05 17:57:23
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载