Comment calculer le pourcentage avec une instruction SQL? [fermé]


1

j'ai deux tables SQL je veux comparer deux tables .. la comparaison de deux tables est faite maintenant ce que je veux est combien d'enregistrements sont appariés et non appariés sous la forme de pourcentage. Est-il possible d'écrire une requête en SQL pour obtenir un pourcentage? et voici mes tables

  src_table

----------------------------------------------------------------
src_table
----------------------------------------------------------------
1
2
3
a
b
c
a@
b@
c@
-----------------------------------------------------------------

et tgt_table est

-----------------------------------------------------------------
tgt_data
-----------------------------------------------------------------
1
4
5
a
e
f
a@
e@
f@
--------------------------------------------------------------------

et maintenant je veux des données appariées et non appariées sous forme de pourcentage est-ce possible?

Réponses:


0

Je suppose que vous souhaitez calculer le pourcentage sur la table tgt_data. Si ce n'est pas le cas, il suffit d'échanger les noms de table ci-dessous.

La requête dépend des capacités de votre produit SQL. S'il ne peut pas gérer les expressions complexes avec des sous-requêtes, vous devrez diviser l'expression en plusieurs instructions.

L'expression que vous souhaitez calculer est:

(select count(*) * 100 from tgt_data t where exists
  (select * from src_table where src_col = t.tgt_col))
/
(select count(*) from tgt_data)

Si vous avez besoin de la formuler en une seule instruction SELECT, voici une autre formulation:

select  
(select count(*) * 100 from tgt_data t where exists
  (select * from src_table where src_col = t.tgt_col))
/ count(*)
from tgt_data

Si votre produit calcule cela en arithmétique entière et que vous souhaitez obtenir le résultat en décimal, remplacez-le 100par 100.0ci-dessus.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.