选择重复项

时间:2012-03-27 18:51:19

标签: mysql sql

我有一个看起来像这样的表:

id| country  |
===================
1 | Argelia  | 
2 | USA      |
3 | China    |
4 | Italy    |
4 | Italy    |
6 | USA      |
7 | USA      |
1 | Argelia  |

我想要一个选择重复国家/地区的查询,但仅限于ID不同时。因此,从上表中,查询将产生类似于:

的内容
id| country  |
===================
2 | USA      |
6 | USA      |
7 | USA      |

意大利和Argelia也是重复的国家,但由于他们共享一个id,他们不应该在输出中。我该怎么办?

2 个答案:

答案 0 :(得分:4)

SELECT c.id, 
       c.country 
FROM   countries c 
       INNER JOIN (SELECT country, 
                          COUNT(DISTINCT id) k 
                   FROM   countries 
                   GROUP  BY country 
                   HAVING k > 1) t 
         ON c.country = t.country 

see it working

答案 1 :(得分:0)

SELECT country, COUNT(DISTINCT id) AS cnt, GROUP_CONCAT(id)
FROM yourtable
GROUP BY country, id
HAVING cnt > 1
相关问题