SQL : question tt con , mais galere : pourcentage - Programmation
Marsh Posté le 29-03-2002 à 09:22:18
En quoi c'est ? SQL ? C, Java ?
Sinon c'est tout con : tu comptes les compagnies, tu comptes les homepages et ensuite, homepages * 100 / compagnies
Où est la difficulté ?
Marsh Posté le 29-03-2002 à 09:24:22
Cherrytree a écrit a écrit : En quoi c'est ? SQL ? C, Java ? Sinon c'est tout con : tu comptes les compagnies, tu comptes les homepages et ensuite, homepages * 100 / compagnies Où est la difficulté ? |
C en SQL
Oui, je c ce ki fo fer, mais c le fait de l'imbriquer ds une seul requete ke j'arrive po
Marsh Posté le 29-03-2002 à 09:31:31
Ah ouais, j'avais pas vu le SQL dans la question, sorry.
C'est clair que maintenant que tu le dis, je me pose moi aussi le problème de la syntaxe. Je cherche.
Marsh Posté le 29-03-2002 à 09:34:01
Facile (mais pour MySQL)
select (count(homepage) * 100 / count(compagnie)) from Table as value where [conditions..]
et ouala!
Marsh Posté le 29-03-2002 à 09:35:20
SELECT COUNT(homepages) * 100 / COUNT(companies) FROM TaTable WHERE homepages <> "";
AMHA c'est un truc comme ça.
Marsh Posté le 29-03-2002 à 09:45:37
Nan, ca va pâs votre truc, paske, ca ne compte pas le nb total de company
Marsh Posté le 29-03-2002 à 09:52:01
select (cast(count(supplierid)as numeric(5,3))/(select cast(count(supplierid)as numeric(5,3)) from suppliers))*100 from suppliers where homepage is not null
Marsh Posté le 29-03-2002 à 09:55:48
fabd a écrit a écrit : Nan, ca va pâs votre truc, paske, ca ne compte pas le nb total de company |
Comment ça, ca compte pas le nombre total de compagnies?? C zarb, pasque je viens de fair eun test sur deux valeurs dans une table à moi, et ça fonctionne??
Marsh Posté le 29-03-2002 à 10:02:51
gfive a écrit a écrit : Comment ça, ca compte pas le nombre total de compagnies?? C zarb, pasque je viens de fair eun test sur deux valeurs dans une table à moi, et ça fonctionne?? |
BAH no, tu met une clause where sur TOUTE la requete
Marsh Posté le 29-03-2002 à 10:05:08
ah, okaye, je vois, effectivement, j'avais pas pensé à ça!
Marsh Posté le 29-03-2002 à 10:11:15
Arrgh, en plus d'être lent, je fais la même erreur que gfive.
Marsh Posté le 29-03-2002 à 11:03:38
select ( sum( case homepage when NULL then 0 else 1 end )*100 / ( count( compagnie ) ) ) as x from table
J'ai testé, et çà marche avec MySql !
[jfdsdjhfuetppo]--Message édité par Mara's dad--[/jfdsdjhfuetppo]
Marsh Posté le 29-03-2002 à 13:51:01
Select count(E1.homepages) / count (E.compagnie)
from tatable as E, tatable as E1
where E1.homepages IS NOT NULL
un truc comme ca
[jfdsdjhfuetppo]--Message édité par Rob Roy--[/jfdsdjhfuetppo]
Marsh Posté le 29-03-2002 à 13:59:12
Rob Roy : Dans une requête comme çà, tu as une explosion combinatoire. Le nombre d'enregistrement compté correspond à Nb d'enreg de E * Nb d'enreg de E1.
Donc ce n'est pas la solution !
Sans parler du fait que tu ne calcule pas un poucentage !
Marsh Posté le 29-03-2002 à 14:03:55
Donc, si tu fais le test, tu te rendra compte que :
count(E1.homepages) est égale = count (E.compagnie)
et que donc
count(E1.homepages) / count (E.compagnie) vaut 1.
Marsh Posté le 29-03-2002 à 09:18:40
Y a 2 champs : compagnie et homepage
Chaque compagnie peut avoir une homepage. mais peut ne pas en avoir aussi (champs vide dans ce cas)
calculer le pourcentage des compagnies qui on une homepage
ca parait facile, mais no
HELP