[MySQL 3.23.X] AVG und LIMIT

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

  • [MySQL 3.23.X] AVG und LIMIT

    Servus
    Code:
    SELECT AVG(preis)
    FROM tabelle
    Liefert mir den Durchschnittspreis aller Produkte in der Tabelle, wenn ich aber den Durchschnittspreis der Produkte #1 - #50 haben möchte und danach den der Produkte #2 - #51 und danach ..., dann muss ich das ja anders machen

    Code:
    SELECT AVG(preis)
    FROM tabelle
    ORDER BY datum DESC
    LIMIT 0, 50
    und
    Code:
    SELECT AVG(preis)
    FROM tabelle
    ORDER BY datum DESC
    LIMIT 1, 50
    liefern aber nicht das, was ich möchte, da LIMIT nicht die Anzahl der zu lesenden Datensätze bestimmt, sondern die Ergebnismenge manipuliert

    will heißen:
    LIMIT 0,50 liefert mir das gleiche wie ohne LIMIT
    LIMIT 1,50 liefert mir nichts, da durch die 1 bei 1,50 der erste datensatz der ergebnismenge nicht ausgegeben wird, ich aber ja nur einen datensatz habe

    angenommen ich möchte 10 dieser durchschnittspreise haben (1 - 50, 2 - 51, ... 10 - 60), würde mir nur einfallen, alle 60 datensätze zu lesen und dann mit array_slice zu arbeiten, oder gibt's da ne möglichkeit in sql?
    Ich denke, also bin ich. - Einige sind trotzdem...

  • #2
    warum ziehst du mit limit nicht die ds, die du brauchst in ein einfaches
    array und benutzt "array_sum()/count(array)" ... mit sql bin ich an der
    aufgabe auch schon gescheitert ... aber das heisst ja nix

    btw: mit 4.1 sollte es doch mit einem subselect gehen ... kannst du
    darauf umsteigen?
    Kissolino.com

    Kommentar


    • #3
      wahrscheinlich wird's auf ne php-lösung rauslaufen

      array_sum/count für jedes array das ich mit array_slice rausgeschnitten hab

      $arr = array_slice($array, 0, 50);
      echo array_sum($arr) / 50;
      $arr = array_slice($array, 1, 50);
      echo array_sum($arr) / 50;
      ...


      mysql 4.x könnte es eventuell mit subselects, aber da ein umstieg nicht möglich ist hab ich da noch nicht weiter drüber nachgedacht
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar

      Lädt...
      X