webForumDet fria alternativet

Select top 1

4 svar · 331 visningar · startad av Dino

DinoMedlem sedan sep. 20011 914 inlägg
#1

Har en select som ger detta.

 
ItemId	Type
2	400
2	200
8	700
8	500
8	200
8	100

Men hur gör jag för att den endast skall ge detta. Alltså det ItemId som har högst Type.

 
ItemId	Type
2	400
8	700
LarsGMedlem sedan dec. 200012 464 inlägg
#2
select itemid,max(type)
from t
group by itemid
DinoMedlem sedan sep. 20011 914 inlägg
#3

Tänk så lätt det kan vara. Tackar. :)

red// Ovan nämnda uppskattning gäller för de fungerande lösningarna i inlägg #2 och #5.

DinoMedlem sedan sep. 20011 914 inlägg
#4

Alltid skall man göra det svårare för sig. Selecten ger nu detta.

Id	ItemId	Type
10	2	400
7	2	200
6	8	700
1	8	500
18	8	200
9	8	100

Nu vill jag endast ha ut de Id:na per ItemId med högst Type värde. Som nedan.

[B]Id[/B]	ItemId	Type
[B]10[/B]	2	400
[B]6[/B]	8	700

Frågan skall alltså retunera:

Id
10
6
LarsGMedlem sedan dec. 200012 464 inlägg
#5
select id,itemid,type
from t as q
where type =
 (select max(type)
     from t
    where t.itemid = q.itemid)
127 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)