Вернуть дубликаты записей - PullRequest
3 голосов
/ 04 мая 2011

Я просто хочу вернуть дубликаты записей из таблицы.В моем случае запись дублируется, если более чем одна запись имеет одинаковое значение в столбцах col1, col2, col3 и col4.

Ответы [ 2 ]

5 голосов
/ 04 мая 2011
SELECT col1, col2, col3, col4
     , COUNT(*) AS cnt
FROM yourTable
GROUP BY col1, col2, col3, col4
HAVING COUNT(*) > 1

Если есть дополнительные столбцы, которые вы хотите показать, вы можете JOIN выше в таблице:

SELECT t.*
     , dup.cnt
FROM yourTable t
    JOIN
      ( SELECT col1, col2, col3, col4
             , COUNT(*) AS cnt
        FROM yourTable
        GROUP BY col1, col2, col3, col4
        HAVING COUNT(*) > 1
      ) AS dup
      ON  t.col1 = dup.col1
      AND t.col2 = dup.col2
      AND t.col3 = dup.col3
      AND t.col4 = dup.col4
1 голос
/ 04 мая 2011
SELECT  m.*
FROM    (
        SELECT  col1, col2, col3, col4, COUNT(*)
        FROM    mytable
        GROUP BY
                col1, col2, col3, col4
        HAVING  COUNT(*) > 1
        ) md
JOIN    mytable m
ON      m.col1 = md.col1
        AND m.col2 = md.col2
        AND m.col3 = md.col3
        AND m.col4 = md.col4
...