divisions de count en sql

divisions de count en sql - SQL/NoSQL - Programmation

Marsh Posté le 25-08-2004 à 11:24:36    

bonjour a tous  
je souhaiterai faire une division de deux count dans une meme requete mais je ne sais pas comment faire. En fait je souhaiterai calculer le pourcentage d'un champ ayant un certain critere. Comment faire ???? :(

Reply

Marsh Posté le 25-08-2004 à 11:24:36   

Reply

Marsh Posté le 25-08-2004 à 11:26:27    

SELECT COUNT(truc)/COUNT(machin) as 'bidule' FROM ... WHERE ...
 
 
?

Reply

Marsh Posté le 25-08-2004 à 11:30:27    

en fait mon pb est un peu plus subtile
j'ai une table. Je veux faire une requete du style  
SELECT COUNT (t1.avancement) ,count(t2.avancement) from table1 t1,table1 t2 where t2.avancement ="100%"
 
comme ca je recupere dans le premier count l'ensemble de mes enregistrements dans le second juste ma sélection et a partir de ca je divise et j'ai mon pourcentage mais ca ne marche pas ;(  

Reply

Marsh Posté le 25-08-2004 à 11:31:16    

ton dbms accepte les requètes imbriquées?

Reply

Marsh Posté le 25-08-2004 à 11:32:50    

oui mais je vois pas trop comment faire meme avec requets imbriquees

Reply

Marsh Posté le 25-08-2004 à 11:35:19    

SELECT A.field/B.field FROM (SELECT count(*) AS field FROM table1) AS A, (SELECT count(*) AS field FROM table1 WHERE avancement = "100%" ) AS B

Reply

Marsh Posté le 25-08-2004 à 11:37:36    

ca ne marche pas il me rend juste la valeur du count(*) ;(

Reply

Marsh Posté le 25-08-2004 à 11:39:53    

c'est quoi ton sgdb?

Reply

Marsh Posté le 25-08-2004 à 11:42:23    

access mais j'avais fait une petite erraur ca marche maintenant merci beaucoup :)))

Reply

Marsh Posté le 25-08-2004 à 11:46:15    

et si maintenant je veux mettre le type de fiche (texte) a cote de mon pourcentage en finissant par un order by??
(puisque j'ai l'impression que avec cette solution je ne peux plus manipuler autre chose mais je peux me tromper)

Reply

Marsh Posté le 25-08-2004 à 11:46:15   

Reply

Marsh Posté le 25-08-2004 à 11:57:17    

en fait voila comment j'ai modifié mais il me fait des crasses.....
 
SELECT a.type, 100*(B.field/A.field) AS pourcentage
FROM [SELECT type,count(*) AS field FROM requête_lup_2 group by type]. AS A, [SELECT type,count(*) AS field FROM requête_lup_2 WHERE avancement = "100%"]. AS B
GROUP BY 100*(B.field/A.field), a.type;

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed