[SQL] count d'un count ??

count d'un count ?? [SQL] - SQL/NoSQL - Programmation

Marsh Posté le 16-01-2006 à 17:35:11    

B'jour,
 
j'aurais besoin de faire une ptite requête qui me compte le nb d'utilisateur qui ont un PC seulement.
 
en gros j'ai bien une requête qui me sors les utilisateurs qui ont un PC (cette requête utilisant un group by et un count), mais j'ai besoin de recompter le résultat de cette requête.
 
Il me faudrait le tout dans une seule requête... si possible en évitant un "IN"... et si possible en évitant une procédure.
 
Qq'un aurait une idée ?
(jsuis sous Oracle)

Reply

Marsh Posté le 16-01-2006 à 17:35:11   

Reply

Marsh Posté le 16-01-2006 à 17:45:05    

euh.
select count(*) from
(
select utilisateur, count(*)
from chose
where nb_pc = 1
);


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 16-01-2006 à 17:45:14    

[:petrus dei]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 16-01-2006 à 20:50:47    

skeye a écrit :

euh.
select count(*) from
(
select utilisateur, count(*)
from chose
where nb_pc = 1
);


 
ta requete ne fait pas plus que
SELECT count(*)
from chose
where nb_pc = 1 exuse moi :s
 
 

Reply

Marsh Posté le 16-01-2006 à 20:51:18    

BettaSplendens a écrit :

B'jour,
 
j'aurais besoin de faire une ptite requête qui me compte le nb d'utilisateur qui ont un PC seulement.
 
en gros j'ai bien une requête qui me sors les utilisateurs qui ont un PC (cette requête utilisant un group by et un count), mais j'ai besoin de recompter le résultat de cette requête.
 
Il me faudrait le tout dans une seule requête... si possible en évitant un "IN"... et si possible en évitant une procédure.
 
Qq'un aurait une idée ?
(jsuis sous Oracle)


 
Explique un peu plus ce que tu veux dire. Pourquoi éviter des IN, ou EXISTS, c'est optimisé en ORACLE  

Reply

Marsh Posté le 16-01-2006 à 21:29:27    

BettaSplendens a écrit :

B'jour,
 
j'aurais besoin de faire une ptite requête qui me compte le nb d'utilisateur qui ont un PC seulement.
 
(jsuis sous Oracle)


fais gaffe au type de retour du count(*) sous Oracle hein [:joce]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 16-01-2006 à 21:31:12    

moi23372 a écrit :

ta requete ne fait pas plus que
SELECT count(*)
from chose
where nb_pc = 1 exuse moi :s


 
Je sais, merci...[:itm]
Je ne fais que répondre strictement à ce que j'ai compris de la question...je lançais ça dans l'espoir qu'il m'explique ce que j'avais mal compris.[:petrus75]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 16-01-2006 à 23:15:46    

Arf.. je me doutais que ça serait pas clair...
 
Voilà, j'ai une table utilisateur_workstation (aliasons là UW pour plus de simplicité, avec pour colonne code_U et code_W (code user et code workstation)
pour info la table est "n:n"
je veux connaître le nb d'utilisateur qui ont seulement 1 workstation (et aussi 2 et aussi plus, mais ça sera pour d'autres requêtes).
 
je peux lister les utilisateurs qui possèdent 1 workstation seulemetn simplement avec
  select code_U
  from UW  
  group by code_U
  having count(*)=1
 
mais ce que j'aimerai, c'est connaître le nb de ligne et pas la liste des utilisateurs.
 
En fait, j'aimerai éviter les trucs compliqués, parce que j'ai un outil qui ne me permet pas de faire ce que je veux... mais je crois que de toute façon, faudra que j'passe par une tite procédure, je vois pas comment faire autrement :(
(le but étant d'intégrer ce résultat avec un plein d'autres dans un rapport mensuel)

Reply

Marsh Posté le 17-01-2006 à 13:04:15    

La requête suivante te permet de lister par nombre de workstation, le nombre de personnes :)
 

Code :
  1. select workstation_counter, count(*)
  2. from (select code_U, count(*) as workstation_counter
  3.       from UW 
  4.       group by code_U)
  5. group by workstation_counter
  6. order by workstation_counter;

Reply

Marsh Posté le 17-01-2006 à 13:28:05    

merci bcp !!

Reply

Sujets relatifs:

Leave a Replay

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