显示重复的行值

Display duplicate row values

我正在寻找一种方法来列出具有重复列值的所有行。

示例: Table地址

House Person
23     Joe
23     Jane
27     Chris
29     Grandpa

预期输出:

House Person
23     Joe
23     Jane

我想这样做,这样我就可以操纵住在同一栋房子里的人的价值观。

我会先获取所有超过一个人的房屋 ID:

SELECT house
FROM myTable
GROUP BY house
HAVING COUNT(*) > 1;

然后,您可以将其与您原来的 table 合并,以获取住在这些房屋中的人:

SELECT m.*
FROM myTable m
JOIN (SELECT house FROM myTable GROUP BY house HAVING COUNT(*) > 1) temp
   ON temp.house = m.house;

这是一个 SQL Fiddle 示例。

试试这个:

select b.house, a.person from
    (
        select person,house
        from address
    )a,
    (
        select house,count(house) as cnt
        from address
        group by house
    )b
where a.house = b.house
and b.cnt > 1