Подтвердить что ты не робот

Вернуть все повторяющиеся строки

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

SELECT s.*
    FROM StyleTable s
        INNER JOIN (SELECT Color
                        FROM StyleTable
                        GROUP BY Color
                        HAVING COUNT(*) > 1) q
            ON s.Color = q.Color