【问题标题】:SQL: remove duplicate rows across columnsSQL:跨列删除重复行
【发布时间】:2014-06-03 17:31:27
【问题描述】:

我有一个表格,它以以下格式加载到 sqlite:

player1 player2 player1Probability player2Probability
John    Peter   0.6                0.4
Peter   John    0.4                0.6
Mary    Bob     0.8                0.2
Bob     Mary    0.2                0.8

如您所见,不同列之间存在重复项。前两行提供的数据基本相同:从第一行我们可以看出 John 的概率为 0.6,Peter 的概率为 0.4,而第二行只是复制了这些信息。

有没有办法通过 SQL 查询删除重复的行?

【问题讨论】:

    标签: sql sqlite duplicates


    【解决方案1】:

    这就是我在 MySQL 中的做法,我希望在 sqlite 中也可以这样做。

    DELETE t1.*
    FROM YourTable AS t1
    JOIN YourTable AS t2 
    ON t1.player1 = t2.player2 
        AND t1.player2 = t2.player1 
        AND t1.player1 > t1.player2
    

    另一种方式:

    DELETE FROM YourTable AS t1
    WHERE EXISTS (SELECT *
                  FROM YourTable AS t2
                  WHERE t1.player1 = t2.player2
                     AND t1.player2 = t1.player1
                     AND t2.player1 < t1.player2)
    

    【讨论】:

    • 好的,我已经添加了另一个尝试。
    • 感谢您的回复 - 我尝试了第二种方式,但没有删除任何行。任何进一步的帮助将不胜感激
    猜你喜欢
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 2015-03-13
    • 2020-04-22
    • 2023-02-02
    • 1970-01-01
    • 2019-01-19
    相关资源
    最近更新 更多