【发布时间】:2018-11-26 02:56:46
【问题描述】:
我有一个这样的数据库:
users
id name email phone
1 bill bill@fakeemail.com
2 bill bill@fakeemail.com 123456789
3 susan susan@fakeemail.com
4 john john@fakeemail.com 123456789
5 john john@fakeemail.com 987654321
我想根据电子邮件字段合并被视为重复的记录。
试图弄清楚如何使用以下注意事项。
- 基于重复电子邮件合并
- 如果一行有空值,则使用数据最多的行。
- 如果 2 行是重复的,但其他字段不同,则使用这一行
具有最高 ID 号(请参阅 john@fakeemail.com 行以获取示例。)
这是我尝试过的一个查询:
DELETE FROM users WHERE users.id NOT IN
(SELECT grouped.id FROM (SELECT DISTINCT ON (email) * FROM users) AS grouped)
遇到语法错误。
我正在尝试让数据库转换为此,我无法找出正确的查询:
users
id name email phone
2 bill bill@fakeemail.com 123456789
3 susan susan@fakeemail.com
5 john john@fakeemail.com 987654321
【问题讨论】:
标签: mysql