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