IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Aide sur l'utilisation de Row_Number ou Rownum [11g]


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mars 2013
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2013
    Messages : 82
    Par défaut Aide sur l'utilisation de Row_Number ou Rownum
    Bonjour,

    J'ai un petit problème avec l'utilisation de row_number.

    Soit la table :

    Id Mois
    A 01
    A 02
    A 03
    B 01
    B 02
    C 01
    ... ...


    J'aimerais obtenir :


    Num Id Mois
    1 A 01
    1 A 02
    1 A 03
    2 B 01
    2 B 02
    3 C 01
    ... ... ...

    C'est à dire rajouter une colonne me numérotant l'ID.

    Mais rien n'y fait je n'obtiens pas ce que je souhaite.

    Je pense qu'en passant par une sous-requête cela est possible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT num
    	,id
    	,mois
    FROM T
    INNER JOIN (
    	SELECT id
    		,row_number() (ORDER BY id) num
    	FROM T1
    	) T2 ON t.id = t2.id
    Mais n'y a t il pas un moyen d'obtenir le résultat sans passer par ça ?

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    Si je me réfère à ton exemple, ce dont tu aurais besoin c'est RANK() OVER (ORDER BY id).
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mars 2013
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2013
    Messages : 82
    Par défaut
    Merci Al pour ta réponse.

    Mais j'ai un soucis avec l'incrémentation du rang :

    Nom : 6465.jpg
Affichages : 182
Taille : 44,4 Ko

    Entre deux ID différent, le rang semble reprendre le numéro de la ligne ???

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    En effet, c'est plutôt la fonction DENSE_RANK qu'il faudrait utiliser.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mars 2013
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2013
    Messages : 82
    Par défaut
    Génial, en effet ça marche

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Aide sur l'utilisation des boutons
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 0
    Dernier message: 24/06/2010, 10h55
  2. Besoin d'aide sur l'utilisation de Proximity
    Par ChtiGeeX dans le forum Maven
    Réponses: 2
    Dernier message: 06/02/2009, 16h24
  3. [SimpleXML] Utilisation
    Par Hightuxdotnet dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 20/08/2008, 10h52
  4. Réponses: 1
    Dernier message: 06/09/2006, 14h21
  5. Aide sur l'utilisation du composant TupdateSQL avec Tquery
    Par mezianewanadoo dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/06/2006, 18h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo