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

Langage SQL Discussion :

Problème avec RANK()


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2021
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Problème avec RANK()
    Bonjour à tous,

    Avant toute chose, j'aimerai vous remercier tous par avance pour l'aide que vous pourrez m'apporter.

    Je suis actuellement sur un projet personnel de jeu video avec classement des scores en ligne. Pour cela, j'ai utiliser pas mal de language et notamment du SQL pour le classement. C'est ici que le problème commence. Je dois dire que je ne suis pas vraiment spécialiste de ce langage, pour mon système de ranking, j'ai voulu suivre un tuto en ligne qui execute exactement ce que je souhaite. Le problème c'est que ma BDD ne réagit pas "normalement".

    Voici l'adresse du tutoriel suivi : https://www.geeksforgeeks.org/sql-qu...ase-with-rank/

    Il y a plusieurs étapes dans le tutoriel et tout ce passe bien jusqu'à l'étape 4 : "Verifying and ranking data", la BDD ne veux pas m'executer la commande et si je l'execute, un grand message d'erreur s'affiche.

    Voici les captures du problème en question

    Nom : Capture1.jpg
Affichages : 116
Taille : 233,4 Ko

    Nom : Capture2.jpg
Affichages : 115
Taille : 201,1 Ko

    Pour information, j'ai essayer les corrections simple des non-initiés, j'ai changé les guillemets, j'ai essayé sans... j'ai tut effacé, rédigé la commande de nouveau... j'en perd mes cheveux.

    Merci encore pour votre aide

    Denis

  2. #2
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Bonjour,

    Vu que le message concerne l'alias, modifier la requête avec l'expression rank() over... as 'Rank' en une seule ligne, ça donnerait quoi ?
    Sans alias, ça marche ?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2021
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour Cincinnatus,
    J'ai essayé de mettre la commande en une seule ligne et cela ne change rien.
    J'ai essayé également sans l'alias et rien n'y fait cela m'indique une erreur de syntaxe dans le SQL.

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 134
    Points : 38 557
    Points
    38 557
    Billets dans le blog
    9
    Par défaut
    Il faut savoir que les fonctions OLAP telles que RANK() ne sont pas implémentées dans tous les SGBD ni dans toutes les versions
    Par exemple ACCESS ne les connaît pas et MySQL ne les a implémentées que depuis la V8.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2021
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour escartefigue,

    Merci pour votre réponse, effectivement, je pense que mon problème viens de là... Il se trouve que mon MySQL est en version 5.6 et je n'ai pas la possibilité de le passer en v8.
    Je vais devoir trouver une alternative.

    Si par hasard vous pouvez m'indiqué une solution alternative cela aiguillerait mes recherches !

    Quoi qu'il en soit merci infiniment !

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Par ailleurs en SQL un nom d'alias se note entre guillemets et non entre apostrophes, qui servent à délimiter les chaînes de caractères.
    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.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2021
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Afin de trouver une solution à mon problème j'ai trouvé la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT pseudo, @curRank := @curRank + 1 AS rank
    FROM      scores p, (SELECT @curRank := 0) r
    ORDER BY  tempsstage1mili;
    Grace à cela j'obtiens bien un classement par rang de mon tableau.

    Simplement j'aimerai maintenant écrire le rang de mon résultat SQL dans ma base, dans la colonne attitré...

    Le nom de la base est "score" et la colonne attitré est nommée "rangstage1"

    A Priori il faut combiner ma demande avec un UPDATE mais je n'arrive pas à écrire ca correctement...

    Quelqu'un pourrait-il m'aider ?

    Grand merci !

Discussions similaires

  1. [10g] Problème avec fonction rank()
    Par sebj62 dans le forum SQL
    Réponses: 11
    Dernier message: 26/02/2013, 16h29
  2. [VxiR2] Problème avec rank() sur plusieurs dimensions
    Par NorocBzh dans le forum Webi
    Réponses: 2
    Dernier message: 24/12/2009, 15h39
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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