OVH Cloud OVH Cloud

SQL Server 2000 - Ranking

3 réponses
Avatar
Jean Dupont
J'aurais voulu savoir si il y a une fonction de RANKING dans SQL Server 2000
(La fonction RANK fait tout autre chose). Par exemple, pour les lignes
suivantes :

CLIENT 1 400
CLIENT 2 600
CLIENT 3 400
CLIENT 4 800
CLIENT 5 100

J'aimerais avoir
RANKING
CLIENT 1 400 2
CLIENT 2 600 4
CLIENT 3 400 2
CLIENT 4 800 5
CLIENT 5 100 1

qui correspond à la position dans un tri par ordre ascendant.

Merci d'avance pour vos réponses.

3 réponses

Avatar
Fred BROUARD
Non, la fonction de ranking n'xiste pas dans la version 2000. Elle existe dans
la v 2005.

Pour ce faire il faut executer une non équi auto jointure de la table sur elle
même avec comptage, par exemple

SELECT T1.Col1, T1.Col2, COUNT(*) AS RANG
FROM Matable T1
INNER JOIN MaTable T2
ON T1.Col2 <= T2.Col1

A +

--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************


Jean Dupont a écrit:
J'aurais voulu savoir si il y a une fonction de RANKING dans SQL Server 2000
(La fonction RANK fait tout autre chose). Par exemple, pour les lignes
suivantes :

CLIENT 1 400
CLIENT 2 600
CLIENT 3 400
CLIENT 4 800
CLIENT 5 100

J'aimerais avoir
RANKING
CLIENT 1 400 2
CLIENT 2 600 4
CLIENT 3 400 2
CLIENT 4 800 5
CLIENT 5 100 1

qui correspond à la position dans un tri par ordre ascendant.

Merci d'avance pour vos réponses.



Avatar
Philippe T [MS]
Bonjour,

Non, uniquement en SQL 2005 avec RANK, DESE_RANK et NTILE(n).

----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France

"Jean Dupont" wrote in message
news:
J'aurais voulu savoir si il y a une fonction de RANKING dans SQL Server
2000
(La fonction RANK fait tout autre chose). Par exemple, pour les lignes
suivantes :

CLIENT 1 400
CLIENT 2 600
CLIENT 3 400
CLIENT 4 800
CLIENT 5 100

J'aimerais avoir
RANKING
CLIENT 1 400 2
CLIENT 2 600 4
CLIENT 3 400 2
CLIENT 4 800 5
CLIENT 5 100 1

qui correspond à la position dans un tri par ordre ascendant.

Merci d'avance pour vos réponses.



Avatar
Mimi
Bonjour, j'ai exactement le même besoin que vous avez vous trouvé une
solution ?

Merci
Mimi

"Jean Dupont" a écrit :

J'aurais voulu savoir si il y a une fonction de RANKING dans SQL Server 2000
(La fonction RANK fait tout autre chose). Par exemple, pour les lignes
suivantes :

CLIENT 1 400
CLIENT 2 600
CLIENT 3 400
CLIENT 4 800
CLIENT 5 100

J'aimerais avoir
RANKING
CLIENT 1 400 2
CLIENT 2 600 4
CLIENT 3 400 2
CLIENT 4 800 5
CLIENT 5 100 1

qui correspond à la position dans un tri par ordre ascendant.

Merci d'avance pour vos réponses.