Ankündigung

Einklappen
Keine Ankündigung bisher.

AVG und COUNT mit LIMIT

Einklappen

Neue Werbung 2019

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

  • AVG und COUNT mit LIMIT

    Hallo

    Ich suche die 5 besten Produkte. Mein Problem ist, dass es mehr als 5 Produkte mit gleicher Punktezahl geben kann. Dann würde ich gerne die Produkte nehmen, die am meisten Bewertungen haben.
    Also sortiert nach AVG(r.rating) und dann nach COUNT(r.rating).

    PHP-Code:
    SELECT 
    AVG
    (r.rating) as rating,
    COUNT(r.rating) as countSum,
    r.product_id,
    cp.company FROM review r  
    LEFT JOIN customer_profile cp ON
    (cp.customerId r.product_id)  
    WHERE r.status '1' 
    GROUP BY r.product_id 
    ORDER BY rating DESC 
    LIMIT 5 
    Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.


  • #2
    Zitat von SteiniKeule Beitrag anzeigen
    Hallo

    Ich suche die 5 besten Produkte. Mein Problem ist, dass es mehr als 5 Produkte mit gleicher Punktezahl geben kann. Dann würde ich gerne die Produkte nehmen, die am meisten Bewertungen haben.
    Also sortiert nach AVG(r.rating) und dann nach COUNT(r.rating).

    PHP-Code:
    SELECT 
    AVG
    (r.rating) as rating,
    COUNT(r.rating) as countSum,
    r.product_id,
    cp.company FROM review r  
    LEFT JOIN customer_profile cp ON
    (cp.customerId r.product_id)  
    WHERE r.status '1' 
    GROUP BY r.product_id 
    ORDER BY rating DESC 
    LIMIT 5 
    Und? Das ist schon mal falsch, in Aggregationen MÜSSEN alle Spalten entweder aggregiert oder gruppiert werden.
    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

    Kommentar


    • #3
      Zitat von SteiniKeule Beitrag anzeigen
      Also sortiert nach AVG(r.rating) und dann nach COUNT(r.rating).
      Und warum schreibst du das nicht einfach in den Query?

      PHP-Code:
      ORDER BY AVG(r.ratingDESCCOUNT(r.ratingDESC 

      Kommentar

      Lädt...
      X