0
votes

Comment supprimer des lignes après regroupement avec une performance maximale

donné est le tableau suivant: xxx

J'ai besoin de nettoyer toutes les lignes où le run_id est pas l'identifiant maximal par < Code> Test_id de sorte que la table a l'air comme suit: xxx

Ma meilleure tentative jusqu'à présent: xxx

La performance est essentielle. Pensez-vous qu'il existe une voie plus rapide / plus efficace?


3 commentaires

Publiez votre meilleure tentative de votre Supprimer Query ..


Dans le cadre de l'exercice, au moins commencer par la sélection des éléments que vous souhaitez conserver (ou ceux que vous souhaitez supprimer). Cela vous aidera à visualiser des chemins en avant.


@PM 77-1 j'ai ajouté ma meilleure tentative.


3 Réponses :


1
votes

Vous n'avez besoin de groupement ni de quelque chose. Il suffit d'utiliser ci-dessous Query -

DELETE FROM TABLE_FOO T1
WHERE EXISTS (SELECT RUN_ID
              FROM TABLE_FOO T2
              WHERE T1.TEST_ID = T2.TEST_ID
              AND T1.RUN_ID < T2.RUN_ID)


0 commentaires

1
votes

Cette requête confirmera la liste que vous devez supprimer

Delete from tbl a where exists(select 1 from tbl b where a.test_Id = b.Test_id and a.RUN_ID  < b.RUN_ID )


0 commentaires

1
votes

Je pense que je voudrais aller pour: xxx

Cela capture directement la logique que vous recherchez.


0 commentaires