Mysql select von Top Bewertungen

Elementar

Mitglied
Moin Tutorials Teams !

Ich möchte alle User die eine 5 in (rating_1 bis rating_7) gemacht haben eine top list machen.
In der Tabelle stehen bewertungen ( habe sql dump im Dateianhang). Die sql soll von den bewerteten einträge ( rating_ids) alle einträge gleicher id zusammen fassen und dann eine Toplist machen , wo der meistbewertete oben steht. Quasi sollen die einträge von rating_ids ( 62 ) zusammengefasst werden. dann eine sortierung , wo rating_1=5 bis rating_7=5 am meisten vorkommt. Im Anhang ist mein Datenbank dump.

mein Sql statement :
Code:
SELECT
     rating_ids As id,
     SUM(rating_1 + rating_2 + rating_3 + rating_4 + rating_5 + rating_6 + rating_7 ) AS summe,
     COUNT(id)+1 AS anzahl
   FROM #__dir_ratings_text
   WHERE
   (rating_1='5' OR rating_2='5' OR rating_3='5' OR rating_4='5' OR rating_5='5' OR rating_6='5' OR rating_7='5' )
   AND status='1'
   GROUP BY id
   ORDER BY summe DESC
Das soll rauskommen:
1. rating_ids (62) , (SUM( 5 * 5 ) = 25)
2. rating_ids (63) , (SUM( 3 * 5 ) = 15)
3. rating_ids (66) , (SUM( 1 * 5 ) = 5)

Bin für jeden Tipp dankbar. Greets Elementar
 

Anhänge

also hab es hinbekommen.

wenn es interessiert:

SELECT
rating_id as id,
SUM(rating_1 + rating_2 + rating_3 + rating_4 + rating_5 + rating_6 + rating_7 ) AS summe,
COUNT(rating_ids) AS anz
FROM ratings_text
WHERE
(rating_1 = 5 OR rating_2 = 5 OR rating_3 = 5 OR rating_4 = 5 OR rating_5 = 5 OR rating_6 = 5 OR rating_7 = 5 )
AND status='1'
GROUP BY id
ORDER BY summe DESC LIMIT 0,10

er fasst nun die einzelnen bewertungen zu jeder ( rating_id) zusammen. Sortiert danach welche die bessere gesamtsumme hat.
 
Zuletzt bearbeitet:
Zurück