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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Aide sur un Group by

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Aide sur un Group by

n°1995165
bird80
Posté le 21-05-2010 à 17:23:59  profilanswer
 

Bonjour,
 
J'ai un petit problème :
 
Table Source (créée elle meme par un select)
   Col1  Col2
1    A      B
2    A      C
3    B      D
...
 
Ajout d'une col 3 qui correspont au nombre d'occurence de l'élément de la col1 dans la table
 
Table Cible
  Col1  Col2  Col3
1   A     B      2
2   A     C      2
3   B     D      1
 
 
Je pensais faire une requete du style :
 
Select
 Col1
 Col2
 SELECT count(*) FROM Tab source GROUP BY A
FROM  
 (Select ....
    Union
  Select ...) Tab Source;
 
Mais visiblement Oracle ne reconnait pas Tab source au niveau du select count(*) ...
 
Si quelqu'un peut m'aider, je serais content :)
 
 
 
 
 
 

mood
Publicité
Posté le 21-05-2010 à 17:23:59  profilanswer
 

n°1995173
Fred999
Rabat-joie
Posté le 21-05-2010 à 17:55:54  profilanswer
 

Salut,
 
select Col1, Col2, count(Col1)
from tab_source
group by Col1
 
J'espère que tu partiras en week-end en paix :o

n°1995200
bird80
Posté le 21-05-2010 à 19:38:37  profilanswer
 

on ne peut pas avoir qu'une partie des colonnes dans le group by si on y fait référence ;(

n°1995275
TotalRecal​l
Posté le 22-05-2010 à 11:11:35  profilanswer
 

Ben tu n'as pas besoin de Col2 là, on pourrait le retirer de la requête. Si j'ai bien compris tu as juste besoin d'affecter Col3 pour chaque valeur de col1.

 

tu dois pouvoir passer par une table temporaire :
select Col1, count(Col1)
into #stats
from tab_source
group by Col1

 

update tab_source
set col3 = (select from #stats where #stats.col1 = col1)

 

Ou si tu rames (je ne vois pas pkoi) et que tu as un nombre de valeurs pour Col1 restreint, tu les gères une à une. Tu fais un update qui englobe ton select.
Un truc du genre :
Update tab_source
set Col3 = (select count(col1) from tab_source where col1 = A)
where col1 = A

 

avertissement : ce post a été rédigé par un mec qui n'a rien testé, fait de moins en moins de SQL et s'est levé il y a 10 minutes [:joce].


Message édité par TotalRecall le 22-05-2010 à 11:11:47

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog

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

  Aide sur un Group by

 

Sujets relatifs
aide pour socket TCP IP en CAide pour l'installation de VideoCapture
Aide en SDL Basic, please !FREEBOX : perdu localhost après passage en mode routeur
aide site multilingueJquerytools et Ajax (chargement pages)
aide PHPbesoin d'aide,
[Flash] aide packageVBA : débutant, besoind'aide pour une macro
Plus de sujets relatifs à : Aide sur un Group by


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