![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 313 Pomógł: 5 Dołączył: 22.03.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam kompletnie nie wiem jak to przepisać na język zapytania do sql poprzez php a mianowicie mam 2 tabele w jeden są kawały tabela:h1 a w 2 tabeli jest ocena tych kawałów tabela: ratings
Chciałbym w zapytaniu wyjąc 10 kawałów na które dano najwięcej głosów oraz które mają największa ocenę w jednym. Tabela ratings id- id kolejność article - id kawału rate- ocena od 1do 6 ip- ip dodającego datum- data tabela h1- zawierająca kawały id -id kolejność cat - kategoria text- treść kawału date- data Proszę o pomoc jak to napisać. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 31.08.2007 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Sortuje po ilości głosów a następnie po ocenie ( odwrotnie było by bez sensu bo najwyżej był by dowcip z jednym głosem na 6 )
powinno być ok... ale jak to w sql, wszystko da się zrobić lepiej ![]() Ten post edytował gruzin 9.03.2008, 16:34:27 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Cytat Sortuje po ilości głosów a następnie po ocenie ( odwrotnie było by bez sensu bo najwyżej był by dowcip z jednym głosem na 6 ) A teraz który dowcip będzie "wyżej" - ten który ma 50 ocen: 6, czy ten który ma 51 ocen: 1? -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 31.08.2007 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
OK, to nie jest dobre rozwiązanie... można by sortować po jakichś wagach dla ilości głosów i ich wartości ale jak to sensownie zrobić? Masz jakiś lepszy pomysł?
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
można przyjąć wskażnik:
wskaznik = liczba_glosów ^ średnia_głosów (^ - do potęgi) przykładowe wyniki: 100 ocen, średnia 1 = 100; 10 ocen, średnia 2 = 100; 1 ocena, średnia 6 = 6; 5 ocen, średnia 3 = 125; ogólnie - mała liczba ocen - albo niska średnia - wypadają z ratingu na koniec ... bardzo duża liczba słabych ocen przegrywa w konfrontacji ze średnią liczbą wysokich ocen - rezultat bardziej jest zależny od wykładnika potęgi (średnia) niż od podstawy (ilość) -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 374 Pomógł: 23 Dołączył: 3.06.2006 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
A po co robić jakieś wskaźniki i inne dziwne operacje, które i tak nie są adekwatne do tego co chcesz uzyskać...
Jeśli chcesz je uporządkować w odpowiedniej kolejności z uwzględnieniem stosunku ilości głosów do oceny- użyj średniej kwadratowej. Poza tym w przykładzie podanym przez gruzin'a skoro mamy średnią arytmetyczną i ilość głosów to wystarczy posortować wyniki najpierw po średniej a potem po ilości głosów (na odwrót) i wyjdzie to co chcemy Ten post edytował mokry 14.03.2008, 00:20:26 -------------------- Pomogłem? Podziękuj proszę klikając poniżej "POMÓGŁ" ;)
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 18:34 |