Проверка повторяющихся записей в таблице, где идентификатор является идентификатором

В моей таблице идентификатор является полем первичного ключа и столбцом идентификации. Я хочу проверить повторяющиеся записи. (Конечно, повторяющиеся записи не имеют одинаковых идентификаторов)

И не имеют полей даты же.

Как мне это проверить.

Дополнительная информация: у меня есть 10 столбцов с 1 идентификатором, 2 датами и другими 3 строками, 3 Int, 1 бит.

Спасибо заранее.


person pooja_cute    schedule 02.06.2011    source источник
comment
РЕДАКТИРОВАТЬ: дубликат будет иметь другие 3 строки, 3 Int, 1 бит. колонки одинаковые.   -  person pooja_cute    schedule 02.06.2011


Ответы (3)


Вы можете использовать GROUP BY для группировки похожих записей, чтобы подсчитать их, а затем добавить предложение HAVING, чтобы отфильтровать только те, которые встречаются более одного раза:

select StringCol1, StringCol2, StringCol3, IntCol1, IntCol2, IntCol3, BitCol1, count(*) as Count
from MyTable
group by StringCol1, StringCol2, StringCol3, IntCol1, IntCol2, IntCol3, BitCol1
having count(*) > 1
person D'Arcy Rittich    schedule 02.06.2011
comment
Благодарю вас. Работал как Шарм. - person pooja_cute; 02.06.2011

Используйте GROUP BY, чтобы сгруппировать похожие записи, и HAVING, чтобы указать для них условие.

select count(string1), count(string2),count(string3),count(int1), count(int2),count(int3),count(bit1)
from table1
group by string1, string2, string3, int1, int2, int3, bit1
having count(string1) > 1 and count(string2) > 1 and count(string3) > 1 and count(int1) > 1 and count(int2) > 1 and count(int3) > 1 and count(bit1) > 1
person iTSrAVIE    schedule 02.06.2011

Обобщенный подход будет следующим. надеюсь, это поможет вам.

SELECT COL1, COL2, ..., COLn, COUNT(*) 
FROM TABLE1 
GROUP BY COL1,COL2, .., COLn 
HAVING COUNT(*) > 1
person Vijay    schedule 02.06.2011