You will need to use it as an implicit temp table try:
DELETE FROM myTable WHERE id IN (SELECT t.id from (select id FROM myTable GROUP BY memorialId,soldierId HAVING COUNT(*) > 1 AND min(source) = '') t )