Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 26/08/2015 11:01:35
- erij.k
- Membre
calcul de poucentage Postgresql
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
#2 26/08/2015 11:21:51
- Marc Cousin
- Membre
Re : calcul de poucentage Postgresql
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
#3 26/08/2015 11:32:08
- erij.k
- Membre
Re : calcul de poucentage Postgresql
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
#4 26/08/2015 11:33:58
- Marc Cousin
- Membre
Re : calcul de poucentage Postgresql
Ce que vous cherchez, c'est round…
SELECT round(a.security_errata::float/count(*)*100,2)
Marc.
Hors ligne
#5 26/08/2015 11:38:22
- erij.k
- Membre
Re : calcul de poucentage Postgresql
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
#6 26/08/2015 11:39:26
- Marc Cousin
- Membre
Re : calcul de poucentage Postgresql
Arf, oui, round, c'est avec du numeric, pas du float. Donc au lieu de ::float, c'est ::numeric. Désolé
Marc.
Hors ligne
#7 26/08/2015 12:02:47
- erij.k
- Membre
Re : calcul de poucentage Postgresql
J'ai eu le résultat que je cherche merciiiii beacoup
Hors ligne
Pages : 1