0
votes

Comment optimiser l'instruction SQL Select?

J'ai un problème avec la déclaration SQL Select. J'essaie d'obtenir le pourcentage en utilisant la logique ci-dessous.

Par exemple, j'ai deux tables. L'un est le tabla et une autre table

  • Tablea a une carte d'identité de colonne, A1, A2 .., Obtenez un nombre total distinct d'A1 comme "x".

  • tableb a une carte d'identité de colonne, B1, B2, FK_A1. Obtenez le compte de B2 comme "Y".

  • Obtenez (y / x) * 100 comme pourcentage total.

    J'ai pu le faire à l'aide de sous-requêtes, mais j'aimerais utiliser une déclaration simple et efficace. Est-il possible d'obtenir tous les cas ci-dessus 3 dans une seule instruction SELECT? Votre aide serait extremement appreciee. xxx


1 commentaires

Veuillez ajouter une balise d'optimisation de requête à votre question


3 Réponses :


0
votes

Vous pouvez utiliser une join simple entre deux tables: xxx

  • Appliquer distinct sur B2 si nécessaire dans votre cas.
  • Appliquer externe Rejoignez si nécessaire dans votre cas.

    acclamations !!


1 commentaires

Si l'une de la réponse a résolu votre question, s'il vous plaît accepter it, donc que votre question est marquée comme résolue.



1
votes

Essayez cette requête

SELECT ( COUNT(B2) / COUNT(DISTINCT A1) ) * 100 AS TOTAL_PERC FROM TABLEA A INNER JOIN TABLEB B ON TABLEB.FK_A1 = TABLEA.A1;


0 commentaires

0
votes

Vous pouvez utiliser joindre inner avec groupe par pour y parvenir. Vous pouvez également utiliser CTE pour effectuer vos enregistrements distincts séparément. XXX


0 commentaires