Mas bien hay que replantear lo que deseas, porque al hacer
Código SQL
[-]
select * from (select * from tabla1 where campo1 = pk1) as t2
en realidad no estas haciendo mas que lo mismo, nada más que le das una vuelta.
Si ya los tienes identificados, pienso que deberías copiarlos en una tabla temporal y después hacer un join a esa tabla para encontrar lo que buscas.
Ahora que si quieres ver otra forma de borrar registros duplicados, puedes revisar
este enlace