webForumDet fria alternativet

Max() funkar inte som tänkt

1 svar · 189 visningar · startad av cyprys

cyprysMedlem sedan dec. 20003 563 inlägg
#1

Jag har en kolumn "bid" insatt som int(11) och skall ta ut maxbeloppet, vilket inte fungerar som tänkt.

SELECT konto, max(bid) as bud 
FROM bidding 
GROUP BY 1 ORDER BY 2 DESC

Detta fungerar till en gräns att resultat kommer fram men inte rätt maxvärde. Det står nämligen bara noll för max(bid).

Så jag testade på en aning max(trim(bid)) och helt plötsligt som kom det fram värde, men bara de högsta utifrån den första siffran. Alltså som att kolumnen hade varit av typen char.
Det finns numeriska högre värden.

Använder .net och mySQL 4.1 och undrar om någon kan gissa vad felet ligger? Det borde sorteras numerisk, eller?

cyprysMedlem sedan dec. 20003 563 inlägg
#2

Löste det såhär

SELECT accountid, bid
FROM bidding t1
WHERE bid=(SELECT MAX(bid) 
            FROM bidding t2 WHERE t1.accountid = t2.accountid)
ORDER BY 2 DESC

Förstår ändå inte riktigt varför det första inte fungerar.

r/ När jag kollade datatypen för värdet efter jag körde trim så var det string, annars int64 hela tiden.

131 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)