Vous n'êtes pas identifié(e).
Pages : 1
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
******************
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
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
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
Pages : 1