Hej, jag har en tabell som i förenklad from ser ut såhär: Ja, Tack det fungerar i exemplet jag gav, men nu är det så att jag har flera andra kolumner också. Så den väljer rätt ID men alla andra kolumner blir fortfarande fel, jag vill att de väljs från samma rad som det högsta ID. SELECT X.ID, X.GroupID, KolumnA, KolumnB, ... FROM Tackar! Jag tänkte det som en nödlösning, hoppades att det skulle finnas en funktion för det bara. Nä, det är exakt så här man löser det; först måste man hitta rätt rader med group by, sen måste man hämta just de raderna. (Sen kan ju vissa databasmotorer ha gjort speciallösningar, men eftersom det inte behövs finns det inte med i sql-standarden.)GROUP BY Kolumn1 och sortera efter Kolumn2
ID GroupID
1 1
2 1
3 2
4 2
Om jag nu skriver
SELECT * from tabell GROUP BY GroupID
så får jag resultatet
ID GroupID
1 1
3 2
Men vad jagv ill göra är att få ut de värdena med högst ID.. alltså:
ID GroupID
2 1
4 2Sv: GROUP BY Kolumn1 och sortera efter Kolumn2
SELECT * from tabell GROUP BY GroupID
ska ju egentligen inte funka (just på grund av "vad ska det vara i ID, då?").
Rätt blir
SELECT MAX(ID), GroupID from tabell GROUP BY GroupID Sv:GROUP BY Kolumn1 och sortera efter Kolumn2
Sv: GROUP BY Kolumn1 och sortera efter Kolumn2
(SELECT MAX(ID) As ID, GroupID from tabell GROUP BY GroupID) X LEFT JOIN
Tabell On X.ID = Tabell.ID AND X.GroupID = Tabell.GroupID
Eller motsvarande med subselect (men det funkar nog bara om ID är unik).Sv:GROUP BY Kolumn1 och sortera efter Kolumn2
Ja, ID är unik så det borde gå bra.Sv: GROUP BY Kolumn1 och sortera efter Kolumn2