Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2400 connectés 

  FORUM HardWare.fr
  Programmation

  SQL : question tt con , mais galere : pourcentage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SQL : question tt con , mais galere : pourcentage

n°118923
fabd
Posté le 29-03-2002 à 09:18:40  profilanswer
 

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 :cry:

mood
Publicité
Posté le 29-03-2002 à 09:18:40  profilanswer
 

n°118925
Cherrytree
cn=?
Posté le 29-03-2002 à 09:22:18  profilanswer
 

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

n°118928
fabd
Posté le 29-03-2002 à 09:24:22  profilanswer
 

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 :(

n°118932
Cherrytree
cn=?
Posté le 29-03-2002 à 09:31:31  profilanswer
 

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.

n°118933
gfive
Posté le 29-03-2002 à 09:34:01  profilanswer
 

Facile  (mais pour MySQL)  
 
select (count(homepage) * 100 / count(compagnie)) from Table as value where [conditions..]
 
et ouala!

n°118934
Cherrytree
cn=?
Posté le 29-03-2002 à 09:35:20  profilanswer
 

SELECT COUNT(homepages) * 100 / COUNT(companies) FROM TaTable WHERE homepages <> "";
 
AMHA c'est un truc comme ça.

n°118936
Cherrytree
cn=?
Posté le 29-03-2002 à 09:35:53  profilanswer
 

Arrgh, gfive m'a grillé.

n°118937
fabd
Posté le 29-03-2002 à 09:39:06  profilanswer
 

si simple :heink:  
 
j'essaie :bounce:

n°118938
Cherrytree
cn=?
Posté le 29-03-2002 à 09:42:52  profilanswer
 

Ben ouais.

n°118939
fabd
Posté le 29-03-2002 à 09:45:37  profilanswer
 

Nan, ca va pâs votre truc, paske, ca ne compte pas le nb total de company

mood
Publicité
Posté le 29-03-2002 à 09:45:37  profilanswer
 

n°118941
thegti
La constipation se soigne ...
Posté le 29-03-2002 à 09:48:12  profilanswer
 

utilise des sous-requêtes

n°118942
fabd
Posté le 29-03-2002 à 09:48:32  profilanswer
 

exactement ;)
 
c ce ke je fais

n°118944
fabd
Posté le 29-03-2002 à 09:52:01  profilanswer
 

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

n°118946
gfive
Posté le 29-03-2002 à 09:55:48  profilanswer
 

fabd a écrit a écrit :

Nan, ca va pâs votre truc, paske, ca ne compte pas le nb total de company  




 
:o 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?? :??:

n°118948
fabd
Posté le 29-03-2002 à 10:02:51  profilanswer
 

gfive a écrit a écrit :

 
 
:o 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

n°118951
gfive
Posté le 29-03-2002 à 10:05:08  profilanswer
 

ah, okaye, je vois, effectivement, j'avais pas pensé à ça! :D

n°118955
Cherrytree
cn=?
Posté le 29-03-2002 à 10:11:15  profilanswer
 

Arrgh, en plus d'être lent, je fais la même erreur que gfive.

n°118956
fabd
Posté le 29-03-2002 à 10:19:15  profilanswer
 

vous voyez ke c t pas si simple ;)

n°118974
Mara's dad
Yes I can !
Posté le 29-03-2002 à 11:03:38  profilanswer
 

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]


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°119057
Rob Roy
Posté le 29-03-2002 à 13:51:01  profilanswer
 

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]

n°119059
Mara's dad
Yes I can !
Posté le 29-03-2002 à 13:59:12  profilanswer
 

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 !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°119063
Mara's dad
Yes I can !
Posté le 29-03-2002 à 14:03:55  profilanswer
 

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.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°119065
Rob Roy
Posté le 29-03-2002 à 14:09:07  profilanswer
 

en effet, je suis allé un peu vite

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  SQL : question tt con , mais galere : pourcentage

 

Sujets relatifs
[SQL SERVER] Pb d'Update multiples[Delphi] Question à propos du Form principal
[oracle/sql] commande SQL pour obtenir la liste des tables[JAVA et SQL ] comment naviguer correctement dans les requetes ??
[SQL] base de données vidée chez Free.fr ![SQL] - prob avec Count
[SQL/phpmyadmin] que signifie ce message ?[SQL]selectionner n enregistrements
[DELPHI] : bitmap bouton (bas de page) nouvelle questionQuestion aux ingénieurs ou futurs ingés en prépa
Plus de sujets relatifs à : SQL : question tt con , mais galere : pourcentage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR