PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#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)

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)

=> http://www.postgresql.org/docs/9.4/stat … -math.html

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 sad

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é smile

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 smile

Hors ligne

Pied de page des forums