Limit vor order by

siffkroete

Benutzer
Beiträge
17
Hi Leute

Ich habe eine Liste mit 14 000 Handwerkern und möchte von jeder Branche 5 auswählen.
Wenn ich aber schreibe:
SELECT * FROM handwerker ORDER BY branche LIMIT 5
Dann kriege ich nur 5 Handwerker, ich möchte aber von jeder Branche 5. Wie geht das

Muss man irgendwie subselect machen so etwa
SELECT * FROM (SELECT * FROM handwerker ORDER BY branche LIMIT 5) as ... ??? Aber das funktioniert irgendwie nicht.
 
Werbung:
Werbung:
Die Möglichkeit mit row_number() zu arbeiten ist eine Möglichkeit, ja. Kann aber MySQL nicht. Eine andere Möglichkeit, die u.U. deutlich schneller ist, wäre ein Lateral Join. Kann aber MySQL auch nicht.

Ziehe Dir eine Liste der einzelnen Branchen und dann je 5 davon, und klebe das in der Applikation zusammen. Die unsauberste Lösung - funktioniert aber mit MySQL. You get what you paid for. Solltest Du bereits sein, etwas im Sinne von Aufwand zu zahlen: nehme PostgreSQL. Das rechnet sich dann aber sehr schnell.
 
Zurück
Oben