1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Rang eines Datensatzes ermitteln

Dieses Thema im Forum "MySQL" wurde erstellt von Elmey, 9 Januar 2012.

  1. Elmey

    Elmey Neuer Benutzer

    Hi,

    ich habe eine Tabelle, in der vierschiedene Zählerstände gespeichert werden. Jetzt würde ich gerne ermitteln, an wie vielter Position sich ein Datensatz im Rang befindet. Vielleicht ein Beispiel:

    Code:
    idx    count
    1       10
    2       45
    3       12
    4       31
    
    Der Datensatz mit dem Index 4 hätte in der Rangfolge (sortiert nach "count") die Position 2. Mein aktueller ansatz wäre es, ein "SELECT idx FROM tabelle ORDER BY count" auszuführen, dann so lange durch die Ergebnisliste zu laufen, bis der gesuchte "idx" gefunden ist. Die Position, an der ich mein "idx" finde, ist dann gleichzeigit der Rang.

    Aber: bei serh großen Tabellen müsste ich mir für die Methode jedes mal alle Daten ziehen. Deswegen: geht das nicht auch einfacher, sprich dass ich mir per SQL-Statement die Position eines Datensatzes nach einer Sortieroperation zurückliefern lasse?
     
  2. ukulele

    ukulele Datenbank-Guru

  3. akretschmer

    akretschmer Datenbank-Guru

    row_number() wäre an dieser Stelle aber auch falsch, besser wäre rank() oder dense_rank(). Row_number() zählt einfach nur dumm, die rank()-Funktionen berücksichtigen aber auch mehrere gleiche Plätze.

    Allerdings kennt MySQL weder row_number() noch die rank()-Funktionen.
     
Die Seite wird geladen...

Diese Seite empfehlen