Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Grupowanie i wybieranie wartości największych, Coś pod styl Rating
Fluke
post
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif)

Ten post edytował Fluke 24.01.2012, 21:26:20
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 21:53