AlG*_*tor 12 count select distinct
下面是我的会员表的一个例子。在电子邮件字段中有一些记录具有多个值。我只想选择那些具有多个电子邮件值的记录:
ID LASTNAME FIRSTNAME EMAIL
567 Jones Carol carolj@gmail.com
567 Jones Carol caroljones@aol.com
678 Black Ted tedblack@gmail.com
908 Roberts Cole coleroberts@gmail.com
908 Roberts Cole coler@aol.com
908 Roberts Cole colerobersc@hotmail.com
Run Code Online (Sandbox Code Playgroud)
我希望结果是:
567 Jones Carol carolj@gmail.com
567 Jones Carol caroljones@aol.com
908 Roberts Cole coleroberts@gmail.com
908 Roberts Cole coler@aol.com
908 Roberts Cole colerobersc@hotmail.com
Run Code Online (Sandbox Code Playgroud)
请注意,缺少 Ted Black,因为他只有一个电子邮件地址条目。
我应该澄清一下,我的会员表有 4 列以上。电话和地址等还有额外的列。一个成员可能有多个条目,因为他/她有多个电话号码或地址。我只想捕获那些拥有多个电子邮件地址的人。
这是数据库清理的一部分,将添加主键。我应该进一步澄清,有些人可能有多个具有相同电子邮件地址的条目。在此阶段,我不想捕获具有相同电子邮件地址的多个条目,而只想捕获具有不同电子邮件地址的多个条目的那些条目。
你可以这样做:
select distinct x.id, x.lastname, x.firstname, x.email
from t as x
join (
select id
from t
group by id
having count(distinct email) > 1
) as y
on x.id = y.Id
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81633 次 |
| 最近记录: |