group by MAX() ?

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

  • group by MAX() ?

    Guten Morgen

    ich hab da mal eine frage, hab schon gegoogelt und enige thread gefunden, die scheinbar das gleiche wollten wie ich grad, allerdings keine passende bzw keine ordentliche Lösung gefunden.

    ich hab viele Datensätze, die für mich in gruppen aufgeteilt sind, und zwar durch ein Feld, dass die Tagesuhrzeit angibt also. z.B. hour = 10, hour = 11 usw

    ich hab also viele Datensätze mit hour=10, viele mit hour=11 usw... wenn ich das ganze mit SELECT MAX(hour) anspreche, bekomm ich natürlich nur einen der Datensätze mit dem höchsten "hour" wert... ich möchte aber alle Daten mit dem höchsten hour wert erhalten, wie erreiche ich dieses ziel

    gibt es da einen ordentlicheren Weg als 2 select-statements?



    kurzform:
    Gibt es einen weg für dieses Select ohne Subselect?
    [COLOR=DarkRed]SELECT time, info FROM tabelle WHERE TIME=(SELECT MAX(TIME) FROM tabelle)[/COLOR]?
    Zuletzt geändert von someRookie; 23.11.2009, 11:52. Grund: kurzform Bsp. überarbeitet

  • #2
    Hallo,

    was hältst du davon, die Top X (z. B. 10) zu selektieren?:
    Code:
    select time, info
    from tabelle
    order by time desc
    limit 10
    Wenn du wirklich das Maximum willst, dann wohl eher mit einem negativen Left Join (setzt eine Primärschlüsselspalte namens id voraus):
    Code:
    select t1.time, t1.info
    from tabelle as t1
    left join tabelle as t2
        on t2.time > t1.time
    where t2.id is null;
    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Hallöchen !

      ja, ich benötige leider alle MAX(hour) Daten, daher kommt das mit dem Limit nicht in Frage, hatte ich auch schon überlegt, das limit auf die anzahl einzustellen, aber leider ist auch die anzahl der Datensätze nicht fest

      Zu dem anderen Bsp., ich hab zufällig eine primärschlüsselspalte id..

      hast du dazu ne performance info ? oder soll ich da einfach die script-speed gegen die subselect variante messen?

      Kommentar


      • #4
        Zitat von someRookie Beitrag anzeigen
        oder soll ich da einfach die script-speed gegen die subselect variante messen?
        Du kannst es gerne nachmessen. Ich kann dir nur sagen, dass Joins meist schneller sind als Subselects. Ob das in deinem Falle auch stimmt, weiß ich jetzt nicht aus dem Stegreif, weil du ein unkorreliertes Subselect benutzt und die sind viel leichter zu verdauen als korrelierte. Meines Wissen sollte der Join trotzdem schneller sein.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          ok, ich werds einfachmal testen, kostet ja keine zeit..

          für die BasisInfo !!!

          Kommentar

          Lädt...
          X