Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je voulais calculer le pourcentage des variables de ma base de données mais je n'arrive pas à faire la bonne combinaison.
voila la requête à laquelle je voudrai introduire le calcul du pourcentage et voila un tableau pour mieux comprendre mon besoin.
Je voulais afficher dans une autre colonne le poucentage entre security_errata et le totalcount.
server_name | security_errata | totalcount
client1 1 258
client2 5 852
client3 20 643
"SELECT a.server_name,a.security_errata,a.bug_errata,a.enhancement_errata,a.outdated_packages, count(*) totalcount from rhnserveroverview a full join rhnserverpackage b on a.server_id=b.server_id group by a.server_name,a.security_errata,a.bug_errata,a.enhancement_errata,a.outdated_packages";
Merci pour votre aide.
Hors ligne
Bonjour,
J'imagine qu'il suffit de rajouter une colonne calculée ans le SELECT…
SELECT a.security_errata::float/count(*)*100
Le cast en float, c'est parce que sinon, les opérandes du * et du / étant entiers, on se retrouve avec des opérations sur entiers, et on perd donc la partie décimale.
Dernière modification par Marc Cousin (26/08/2015 11:22:14)
Marc.
Hors ligne
Merci beaucoup pour votre aide juste je voulais savoir si je voudrai afficher deux chiffres après la virgule c'est à dire si mon résultat est égal à 1,1177 je voudrai afficher 1,12 normalement c'est l'arrondi comment je pourrai faire cela avec cette requête ? et merci d'avance.
Hors ligne
Ce que vous cherchez, c'est round…
SELECT round(a.security_errata::float/count(*)*100,2)
Marc.
Hors ligne
ERROR: function round(double precision, integer) does not exist
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
voila j'ai eu cette erreur
Hors ligne
Arf, oui, round, c'est avec du numeric, pas du float. Donc au lieu de ::float, c'est ::numeric. Désolé
Marc.
Hors ligne
J'ai eu le résultat que je cherche merciiiii beacoup
Hors ligne
Pages : 1