Witam.

Staram się rozpracować jak skonstruować zapytanie do bazy danych, które by miało za zadanie zliczać ilość wierszy oraz zliczać wartość oceny i wybrać np: 5 najlepszych.
Mam taką tabelę:
Rating:
[IdRating]
[IdElement]
[Starts] [ENUM (0,1,2,3,4,5)]

Za cholerę nie mogę tego rozpracować. Myślę że tam musi pojawić się na pewno COUNT i AVG.
Może coś takiego: SELECT AVG(COUNT(IdRating) + Stars) AS r FROM Rating WHERE IdElement = $var

Pozdrawiam wink.gif

Znalazłem rozwiązanie, więc zamieszczę tutaj, może komuś na przyszłość pomoże.

  1. SELECT Element, COUNT(Element) AS IloscElementow, AVG(ElementStars) AS Stars, (AVG(ElementStars))*0.5*(COUNT(Element))*0.35 AS Waga FROM elements_rating
  2. GROUP BY Element
  3. ORDER BY Waga DESC


Tutaj zamieściłem też wagi ponieważ jeżeli element miał 1 głos na 5 to nie bardzo może się pokazać jako najlepsze ponieważ może istnieć inny element, który ma 120 głosów na 5 i jeden głos na 4 to w tedy będzie na 2 pozycji. Konieczne jest wprowadzenie wag wedle własnego uznania.

Pozdrawiam smile.gif