Вернуть все повторяющиеся строки - PullRequest
13 голосов
/ 06 марта 2012

Я написал этот код для поиска дубликатов, и он отлично работает:

SELECT *
FROM StyleTable 
GROUP BY Color
HAVING count(*) > 1 

Проблема в том, что он возвращает только одну из повторяющихся строк. Можно ли вернуть все повторяющиеся строки? Я предполагаю, что это может иметь какое-то отношение к 'GROUP BY', но я не уверен, как это изменить. Я не хочу удалять значения, просто верните их.

Ответы [ 2 ]

19 голосов
/ 06 марта 2012

Вы должны снова присоединиться к столу, чтобы получить дубликаты, я думаю.Что-то вроде:

SELECT * 
FROM StyleTable 
WHERE Color IN (
  SELECT Color  
  FROM StyleTable   
  GROUP BY Color  
  HAVING count(*) > 1 
)     
6 голосов
/ 06 марта 2012
SELECT s.*
    FROM StyleTable s
        INNER JOIN (SELECT Color
                        FROM StyleTable
                        GROUP BY Color
                        HAVING COUNT(*) > 1) q
            ON s.Color = q.Color
...