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 p>
Tablea a une carte d'identité de colonne, A1, A2 .., Obtenez un nombre total distinct d'A1 comme "x". p> li>
tableb a une carte d'identité de colonne, B1, B2, FK_A1. Obtenez le compte de B2 comme "Y". P> LI>
Obtenez (y / x) * 100 comme pourcentage total. p> li> ul>
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. p>
3 Réponses :
Vous pouvez utiliser une join simple entre deux tables: acclamations !! p> p>
distinct code> sur
B2 code> si nécessaire dans votre cas. Li>
externe code> Rejoignez si nécessaire dans votre cas. Li>
ul>
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.
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;
Vous pouvez utiliser joindre inner code> avec
groupe par code> pour y parvenir. Vous pouvez également utiliser
CTE code> pour effectuer vos enregistrements distincts séparément.
Veuillez ajouter une balise d'optimisation de requête à votre question