[SQL allgemein] Abfrage mit MAX() funktioniert nicht

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

  • [SQL allgemein] Abfrage mit MAX() funktioniert nicht

    Nabend zusammen,
    ich sitze gerade vor einem Problem!

    Und zwar habe ich eine Tabelle mit folgenden Spalten:

    tag | monat | jahr | visits | pi


    Nun möchte ich per SQL-Abfrage die höchste visits und die höchste pi rausbekommen! Meine Abfrage sieht so aus:

    PHP-Code:
    SELECT max(visits) AS mvisitstagmonatjahr FROM `bw_stats
    Warum sagt mySQL mir das ich eine GROUP-Klausel benutzen muss? Ich versteh das nit! Is doch ganz easy...

    Besten Dank im voraus..

    Marvin S.

  • #2
    Re: [SQL allgemein] Abfrage mit MAX() funktioniert nicht

    Original geschrieben von cybx
    Warum sagt mySQL mir das ich eine GROUP-Klausel benutzen muss?
    Weil mysql dir unterstellt, dass du mitdenkst.

    Wenn du das absolute Maximum haben willst, dann frage nur nach dem Maximum

    Wenn du zusätzlich zum Maximum noch andere Werte haben willst, unterstellt mysql dir, dass du nicht das absolute Maximum haben willst, sondern das rel. Maximum bezogen auf best. Daten, die in einem für dich sinnvollen Zusammenhang mit den neben dem Maximum selektieren Werten stehen.
    Da mysql diese Daten nicht kennt, musst du sie mittels GROUP BY angeben.

    Gruppiere, sortiere nach rel. Maximum absteigend und nimm dann nur den ersten Datensatz
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      OK, viele Dank erstmal!
      Wenn jemand weiss, wie ich das dann mit dieser GROUP-Klausel genau machen muss, wäre et schön wenn er das hier posten könnte! Ansonsten werde ich erstmal die andere Abfrage benutzen, von mir in einem anderen Forum wegen Performance-Gründen (gegenüber MAX()) abgeraten wurde!

      Danke nochmals!

      Kommentar


      • #4
        GROUP BY <hier alle Spalten, die in keiner Aggregatfunktion wie z. B. MAX auftauchen>

        so ist der normalfall

        Alternativ sollte auch ein einfaches
        SELECT visits, tag, monat
        FROM bw_stats
        ORDER BY visits DESC
        LIMIT 1
        reichen?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Original geschrieben von mrhappiness
          SELECT visits, tag, monat
          FROM bw_stats
          ORDER BY visits DESC
          LIMIT 1
          reichen?
          Öhm Nein, der er möchte ja auch noch den höchsten pi haben

          Forumregeln!

          Gute PHP-(tutorial-)Seiten

          Kommentar


          • #6
            Wenn das unabhängig voneinander ist: zwei SELECTS

            Wenn das abhängig ist: zwei SELECTS und beim zweiten ein WHERE einbauen
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar

            Lädt...
            X