如果有重复的行,那么如何仅包含我想要的行与其余行?

时间:2014-06-10 14:49:06

标签: sqlite

这是我的表格,以CSV格式

id, person, cond
1, "john doe", ""
2, "jane smith", ""
3, "walter white", ""
4, "walter white", 1
5, "frodo baggins", ""

我希望使用以下逻辑运行SQL查询:"选择所有内容,但如果person在那里两次,那么只选择person行{{ 1}}不是空字符串(cond)。

结果将是......

""

我已经尝试过这段代码,到目前为止已经失败了......

id, person, cond
1, "john doe", ""
2, "jane smith", ""
4, "walter white", 1
5, "frodo baggins", ""

1 个答案:

答案 0 :(得分:2)

您希望除了名称重复且具有更大cond值的记录之外的所有记录:

SELECT *
FROM MyTable
WHERE NOT EXISTS (SELECT 1
                  FROM MyTable AS Duplicate
                  WHERE Duplicate.name = MyTable.name
                    AND Duplicate.cond > MyTable.cond)