Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Limit vor order by

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von siffkroete, 28 Februar 2017.

  1. siffkroete

    siffkroete Benutzer

    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.
     
  2. ukulele

    ukulele Datenbank-Guru

  3. akretschmer

    akretschmer Datenbank-Guru

    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.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden