Как насчет:
SELECT COUNT(*), A, B, C, D
FROM dbo.YourTable
GROUP BY A, B, C, D
-- optional - if you want to skip all the rows that occur only once
-- HAVING COUNT(*) > 1
По сути, вы просто группируете свои данные по интересующим столбцам и позволяете SQL считать строки, соответствующие каждому набору значений столбцов.