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

#1 09/10/2013 13:44:09

[RESOLU] Calcul de pourcentage

Bonjour,


J'ai une table structurée de la manière suivante :


    id     |     materiaux
--------------------------
    1      |         fonte
    2      |         pvc
    3      |         pvc
    4      |         pvc
    5      |         fonte
    6      |         fonte
    7      |         fonte
    8      |         fonte


Je calcule facilement le nombre d'occurences de « fonte » et de « pvc » avec la requête suivante :

 SELECT materiaux, COUNT(id) AS nombre FROM matable GROUP BY materiaux ; 

Je souhaiterais avoir le pourcentage de chaque matériaux plutôt que le nombre brut d’occurrences. J'ai bien trouvé une piste sur ce post mais je n'arrive pas à transposer l'exemple dans mon cas (ça ne marche pas...).


Si quelqu'un peut m'aider...


Merci beaucoup d'avance !



Thomas

Dernière modification par Thomas Williamson (09/10/2013 16:13:07)

Hors ligne

#2 09/10/2013 13:54:24

Re : [RESOLU] Calcul de pourcentage

******************
            EDIT
******************



J'ai trouvé ça qui semble fonctionner, puis-je faire plus simple ?


 WITH resultat AS (SELECT COUNT(id) AS total FROM matable) SELECT materiaux, COUNT(id)*100/total AS pourcentage FROM resultat, matable GROUP BY total, id ; 

Thomas

Hors ligne

#3 09/10/2013 14:43:55

arthurr
Membre

Re : [RESOLU] Calcul de pourcentage

test=# select materiaux, count(*) as total, count(*) / (sum(count(*)) over())*100 as pourcentage from matable group by materiaux;
 materiaux | total |        pourcentage         
-----------+-------+-------------------------
 fonte     |     5 | 62.50000000000000000000
 pvc       |     3 | 37.50000000000000000000
(2 rows)

Dernière modification par arthurr (09/10/2013 14:44:28)

Hors ligne

#4 09/10/2013 16:03:43

Re : [RESOLU] Calcul de pourcentage

Merci infiniment arthurr ! Je ne connaissais pas les fonctions window... Ça change la vie dans mon cas !


Bonne continuation,


Thomas

Dernière modification par Thomas Williamson (09/10/2013 16:03:53)

Hors ligne

Pied de page des forums