我有一个有重复行的表。我想做一个将删除所有重复行的选择。
我知道我可以做一个GROUP BY,但仍会显示一行副本。我想要的是所有重复都应该被忽略。
E.g
我有一个名为"用户"其中有一列名为"用户名"具有以下值:
因此,当select查询完成时,它应该只显示" John"并且忽略了其他一切,因为Sam和Reyaan是重复的。
感谢。
答案 0 :(得分:2)
您可以使用HAVING子句确保每个组只返回一行。这样,您就可以确保只返回具有1个实例(非零,不超过1)的名称。
示例:
SELECT
name
FROM
people
GROUP BY name
HAVING COUNT(name) = 1;
答案 1 :(得分:1)
您可以使用NOT IN功能
SELECT username FROM users WHERE username not in (select username from users group by username having count(username)>1)