Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/09/2006, 22h25   #1
Invité de passage
 
Inscription : avril 2005
Messages : 1
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1
Points : 0
Points : 0
Par défaut Statistique : Numéro de ligne avec MySQL

Bonjour,

J'aurai besoin d'un coup de main en SQL.
Base : "MySQL 4.0".

J'ai une table de ce type :
- membre { login, cpt_visite }

Si je veux faire la liste des membres ayant le plus de visites, c'est bon :
SELECT login, cpt_visite
FROM `membre`
ORDER BY cpt_visite DESC
>> Résultat :
jerome 10
alex 4
fred 4
tom 4
jerem 3


Mais comment faire pour ajouter un niveau de rang en SQL ??
>> Résultat voulu :
jerome 1
alex 2
fred 2
tom 2
jerem 3


Je cherche un peu partout, mais j'arrive pas à trouver de solution. Ce que je cherche entre-autre c'est une fonction SQL qui permet de sortir le numéro de la ligne.

Merci d'avance !!!
djédjé14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2006, 09h59   #2
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Bonjour,

Cherche un peu plus... le problème a été évoqué plusieurs fois récemment dans ce forum
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2006, 10h02   #3
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
Le numéro de ligne n'est à ma connaissance pas disponible. On doit pouvoir se débrouiller avec des variables, même si ce n'est peut-être pas à mysql de faire ça.

Code :
1
2
3
4
5
 
SET @count=0, @last=NULL;
SELECT login, cpt_visite, IF(cpt_visite=@last, @count, @count:=@count+1), @last:=cpt_visite
FROM `membre`
ORDER BY cpt_visite DESC
Et pour gérer les ex aequo :
Code :
1
2
3
4
5
 
SET @count=0, @last=NULL, @line=0;
SELECT login, cpt_visite, IF(cpt_visite=@last, @count, @count:=@line), @last:=cpt_visite, @line:=@line+1
FROM `membre`
ORDER BY cpt_visite DESC
C'est possible en mysql5, et d'après la doc en 4 aussi.

Edit : grillé et je peux m'autodéscerner un ? je commence bien ma journée moi...
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h05.


 
 
 
 
Partenaires

Hébergement Web