首页 > 解决方案 > 隔离具有多个值的记录(派生表)

问题描述

过度简化我有一个看起来像这样的表:

ID - NAME - EMAIL
1 - JIM - Jim@hotmail.com
2 - JIM - Jim@gmail.com
3 - BARRY - Barry@hotmail.com
4 - JACK - Jack@hotmail.com

我想查询此表并仅返回 NAME 具有多个 EMAIL 值的字段,因此要求的结果是:

NAME - EMAIL
JIM - Jim@hotmail.com
JIM - Jim@gmail.com

其他两个(Barry 和 Jack)不需要返回,因为它们只有一个 email 值。

我在 Access 中设置派生表时遇到了一些困难,以下内容将不起作用,因为它在 FROM 子句中给了我一个错误。还有另一种语法吗?

select DISTINCT x.ID, x.NAME, 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 

标签: ms-accessunique

解决方案


尝试这个:

select x.ID, x.NAME, x.EMAIL
from t as x
where x.NAME in (
    select t.NAME
    from t
    group by t.NAME
    having count(*) > 1)

推荐阅读