在SQL表中查找重复值很容易找到duplicates只有一个领域:SELECT name, COUNT(email) FROM usersGROUP BY emailHAVING COUNT(email) > 1所以如果我们有一张桌子ID NAME EMAIL1 John asd@asd.com2 Sam asd@asd.com3 Tom asd@asd.com4 Bob
bob@asd.com5 Tom asd@asd.com这个查询将给我们约翰,山姆,汤姆因为他们都有相同的email.但是,我想要的是用相同的email和name.也就是说,我想要“汤姆”,“汤姆”。我需要这样做的原因是:我犯了一个错误,并允许插入副本。name和email价值。现在我需要删除/更改复制件,所以我需要找到,发现他们先来。
3 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
SELECT name, email, COUNT(*)FROM usersGROUP BY name, emailHAVING COUNT(*) > 1
在关系数据库理论中,函数依赖是数据库关系中两组属性之间的约束。换句话说,函数依赖是描述关系中属性之间关系的约束。
最近PostgreSQL 支持它 .SQLServer(与SQLServer 2017一样)仍然需要组中的所有非聚合列。 MySQL是不可预测的,您需要 sql_mode=only_full_group_by
:(见已接受答复中的评论)。 甲骨文还不够主流(警告:幽默,我不知道甲骨文)。
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
SELECT name, emailFROM usersGROUP BY name, emailHAVING ( COUNT(*) > 1 )
添加回答
举报
0/150
提交
取消