如何获取重复行

How can I fetch duplicate rows

假设我有一个 table 比如:

ID valA valB valC
1 21 aaaaa NYC
4 12 bbbbb NYC
2 31 ddddd LA
2 23 eeeee LA
2 41 fffff NE
3 23 ggggg JE
3 44 hhhhh KA

我想要所有包含 valC 副本的行。 所以,结果我想要这个:

ID valA valB valC
1 21 aaaaa NYC
4 12 bbbbb NYC
2 31 ddddd LA
2 23 eeeee LA

我试过这样的事情:

SELECT DISTINCT *, count(valC) 
FROM table A
INNER JOIN table B ON A.valC = B.valC
WHERE A.valC = B.valC AND valC > 1;

我是 SQL 的新手,所以如果有任何建议,我将不胜感激。

一种简单的使用方法Subquery

此示例适用于 MySQL

SELECT * 
FROM table_name
WHERE valC IN ( SELECT valC 
                FROM table_name 
                GROUP BY valC 
                HAVING COUNT(valC) > 1);