En SQL, comment puis-je supprimer des lignes dupliquées en fonction de plusieurs colonnes?

Je sais que je peux lancer la requête suivante ci-dessous pour find des lignes "dupliquées" basées sur plusieurs colonnes en faisant quelque chose comme ceci:

SELECT PosId, OrgId FROM PosOrg GROUP BY PosId, OrgId HAVING COUNT(*) > 1 

mais maintenant je veux supprimer les lignes en double afin que la requête ci-dessus se termine de returnner zéro lignes. Peu m'importe laquelle des lignes que je supprime (aussi longtime qu'une seule ligne rest basée sur l'unicité de ces deux colonnes.

Quelle est la bonne façon de supprimer ces duplicates dans SQL?

    Si vous avez une autre colonne d' id unique, vous pouvez le faire

     delete from PosOrg where id not in ( SELECT min(id) FROM PosOrg GROUP BY PosId, OrgId ) 
     ;WITH CTE AS ( SELECT PosId ,OrgId ,ROW_NUMBER() OVER (PARTITION BY PosId , OrgId ORDER BY PosId , OrgId) rn FROM PosOrg ) DELETE FROM CTE WHERE rn > 1