Bonjour à tous

On vient de me soumettre un problème et je m'interroge sur la possibilité de le résoudre en SQL (sans utiliser de PL/SQL).

Il s'agit de faire un SELECT sur une table dont le contenu ressemble à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
col1 | col2 | col3
  1     a       c   
  2     b       d
  2     b       e
  3     a       c
  3     b       d
  3     b       e
L'idée est d'obtenir une 4ème colonne comportant le numéro de l'occurence de la colonne col1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
col1 | col2 | col3 | col4
  1     a       c     1      
  2     b       d     1
  2     b       e     2
  3     a       c     1
  3     b       d     2 
  3     b       e     3
Pour le moment je fais quelques essais en SQL pour essayer de compter le nombre d'occurences de chaque valeur de col1, mais c'est assez peu concluant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
select a.col1,a.col2,a.col3,count(*) as col4
from table a
group by a.col1,a.col2,a.col3
Cette requête met col4 à 1 systématiquement, puisque le group by contient tous les champs (passage obligé puisque j'ai besoin de ces champs dans le select) et que chaque combinaison des trois champs n'a qu'une seule occurence...

Je continue à fouiller, mais si quelqu'un à une idée (un genre de rownum par valeurs d'une colonne peut-être)...

Merci d'avance