Problem mit SELECT durchlauf... MIN(..)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit SELECT durchlauf... MIN(..)

    Nach nun ueber 4 Stunden basteln gebe ich entmutigt auf.

    Folgendes Problem:

    In meiner Tabelle "results" gibt es die Spalten:

    id, runid, generation, durchlauf, caseno, result

    Nun moechte ich folgendes auswaehlen:

    Den durchlauf des kleinsten result einer bestimmten runid (=43) der letzten generation (=10) fuer jede caseno (1 bis 96)

    Dass heisst, er soll eine durchlauf pro caseno ausspucken, fuer die das result am kleinsten ist.

    Folgende Ansaetze hab ich bisher versucht:

    SELECT durchlauf, MIN( result )
    FROM `results`
    WHERE runid =43
    AND generation =10
    GROUP BY caseno, durchlauf

    SELECT durchlauf, result
    FROM `results`
    WHERE runid =43
    AND generation =10
    GROUP BY caseno
    HAVING MIN(result)

    und noch ca 15 verschiedene andere.

    Fuer Tipps waere ich sehr dankbar!

    Gute Nacht,
    Florian

  • #2
    Hmm, fällt mir spontan nur ein Subselect ein:

    Code:
    SELECT caseno, durchlauf, result FROM 
       (SELECT caseno, durchlauf, result FROM `results` t1
          WHERE runid =43
          AND generation =10
          ORDER BY result ASC) t2
       GROUP BY caseno
    LG

    Kommentar


    • #3
      So in etwa
      Code:
      SELECT 
      	caseno,
      	durchlauf,
      	result
      FROM 
      	results t1 
      WHERE 
      	result = (
      		SELECT
      			MIN(result)
      		FROM
      			results t2
      		WHERE
      			t1.caseno = t2.caseno
      	)
      ORDER BY 
      	caseno,
      	durchlauf
      Ich nehme an die nötigen Einschränkungen schaffst du selber
      Gruss
      H2O

      Kommentar

      Lädt...
      X