webForumDet fria alternativet

Vill ta fram 5 största posterna

Databaser & SQL

4 svar · 349 visningar · startad av mphed

Medlem sedan jan. 20062 inlägg
Frågan#1

Jag är ganska ny på SQL och försöker nu få fram en lista med de 5 poster som har högst värde.

--------------------
|namn     |antal   |
--------------------
|anders   |3       |
|bengt    |8       |
|jan      |2       |
|lars     |12      |
|kalle    |24      |
|göran    |13      |
|sven     |9       |
|börje    |17      |
--------------------

Resultatet jag vill få fram är alltså:
kalle 24
börje 17
göran 13
lars 12
sven 9

Hur skriver jag SQL-frågan korrekt? select max(antal) ger ju bara "24". Kan man göra något i stil med select max5(antal)?

Medlem sedan juli 20033 147 inlägg
#2
select
   antal
from
   tabell
order by
   antal desc
limit 
   5
Medlem sedan dec. 20003 563 inlägg
#3

Beroende på vilken db du använder.

-- access
select top 5 namn, antal from tbl order by antal desc

-- mySql
select namn, antal from tbl order by antal desc limit 5
Medlem sedan jan. 20062 inlägg
#4

Tack för svaren. Kom ju på att jag skulle varit tydligare med vilken DB jag använder (MySQL). Det funkar. Tack!

Medlem sedan juni 200032 967 inlägg
#5

mphed skrev:

Tack för svaren. Kom ju på att jag skulle varit tydligare med vilken DB jag använder (MySQL). Det funkar. Tack!

Bra att du fick ihop det!

Hur markerar jag vilket svar som löste mitt problem?

256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)