Ankündigung

Einklappen
Keine Ankündigung bisher.

Idee für "select"

Einklappen

Neue Werbung 2019

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

  • Idee für "select"

    Hi community,

    ich habe diese Tabelle hier mit bsp-daten:
    Bildschirmfoto 2014-05-13 um 11.03.32.png
    Auf der linken Seite: Produktname.
    Auf der rechten Seite: Rating für das Produkt.

    Wie ihr seht, doppeln sich die Produktnamen teilweise.
    Das kommt daher, dass jede ip für jedes Produkt ein seperates rating abgeben kann.

    Meine Frage:
    Ich möchte die Produkte mit dem höchsten rating nacheinander ausgeben,
    mein Ansatz:
    PHP-Code:
    $stmt $dbh->prepare("SELECT product,rating FROM table ORDER BY rating DESC LIMIT 4");
    $stmt->execute();
    $count $stmt->rowCount();
    if(
    $count 1) {
        while (
    $user $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo 
    $user['product']." | ".$user['rating']."\n";
        }

    Nun ist das Ergebnis, dass die dargestellten Produkte teilweise doppelt sind.
    In diesem Fall wird das Produtk "kjsdbfkjb" zwei mal ausgelesen.

    Nun denke ich, mann muss zuerst für jedes Produkt einzeln alle rating raushollen, addieren und durch die Anzahl der rating dividieren.

    Wie würdet ihr da vorgehen??
    Liebe Grüße!


  • #2
    Dafür gibt es Aggregatfunktionen (verdichten/zusammenfassen) in SQL. In deinem Fall wäre das SUM(), gruppiert anhand des Produktes (GROUP BY).

    Erst bestes Beispiel:
    http://www.oracle.com/webfolder/tech...ons/index.html

    Kommentar


    • #3
      Nun denke ich, mann muss zuerst für jedes Produkt einzeln alle rating raushollen, addieren und durch die Anzahl der rating dividieren.
      Bei unter 500 Produkten wäre das ja OK. Aber wenn man mehr hat würde ich mir etwas schnelleres überlegen.

      Kommentar


      • #4
        danke optimal, was dazu gelernt

        Kommentar

        Lädt...
        X