Avatar billede morw Nybegynder
13. november 2001 - 12:29 Der er 4 kommentarer og
1 løsning

Find rang

Jeg har en tabel med brugere

id, point, bruger

f.eks.

3,120,Hansen
5,70, Jensen
6, 80, Pertersen
9, 30, Kurt

Nu vil jeg så gerne finde ud af hvad rang Pertersen har efter point. Skulle altså gerne give 2.

Hvordan gør jeg lige det, uden at lave et loop? Hvis der er 50.000 brugere er det jo ikke så fedt.
Avatar billede disky Nybegynder
13. november 2001 - 12:31 #1
select * from tabel order by point

Så finder du hans plads i dit resultset, så har du placering.
Avatar billede morw Nybegynder
13. november 2001 - 12:56 #2
Jamen så skal jeg så til at lave et loop med en while for at finde hans placering. Det var jo det jeg ville undgå.
Avatar billede disky Nybegynder
13. november 2001 - 12:57 #3
sorry, så misforstod jeg dig :)
Avatar billede alvion Nybegynder
13. november 2001 - 13:00 #4
Det kan gøres med to queries. I den første finder du Petersens pointantal (80). Dernæst laver du følgende

select count(*) from brugere where point > 80

Så har du antallet af brugere, der har flere point end petersen. Dertil lægger du 1.
Avatar billede morw Nybegynder
13. november 2001 - 15:10 #5
Thanx - gad vide hvorfor jeg ikke selv tænkte så langt. Hmm.

Nå men tak for hjælpen. ;-D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester