Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem ze zliczaniem
Forum PHP.pl > Forum > Bazy danych > MySQL
Kinool
struktora trzech tabel jest mnijwiecej taka (przedstawiam tylko pola potrzebne przy zapytaniu):

tab1 (id, user_id) tab2(id, t1_id, ocena) tab3(user_id, username, status)

w tab1 znajduja sie prace (newsy, artykuly, cokolwiek)\
w tab2 sa komentarze i oceny do prac z tab1
tab3 to info o userach id, name itp.

teraz tak chez zrobic zapytanie ktore zliczy mi srednia wszystkich prac i wyswietli to smile.gif

narazie mam zliczanie sredniej dla prac:

  1. SELECT tab3.user_id, tab1.id, tab3.username, (SUM(tab2.ocena)/count(tab2.id)) AS srednia FROM tab1, tab2, tab3 WHERE tab2.t1_id=tab1.id AND tab2.ocena>0 AND tab3.user_id=tab1.user_id GROUP BY tab1.id ORDER BY srednia DESC


ale to wywala mi srednie dla wszystkich prac, natomias chialbym uzyskac wynik sredniej wszystkich prac wiec potrzebowalbym jeszcze liczy prac i i sumy srednich jakie uzyskalem w moim zapytaniu powyrzej, staram sie to jakos placzyc ale mi nic sensownego nie wychodzi sad.gif

wiec prosze o pomoc, moze ktos wie jak to zlicyc ? smile.gif

PS. zapomnialem o relacjach smile.gif tab1.id=tab2.t1_id i tab1.user_id=tab3.user_id (nic skomplikowanego)
jbiz
mysql ma funkcje AVG, probowales?
Kinool
nie poradzielm sobie z tym wiec rozbije na dwa zapytania a teraz jeszcze jedno pytanie smile.gif czy mozna laczyc jkos HAVING questionmark.gif powiedzmy ze mam COUNT(*) as iosc i AVG(ocena) as ocena i chcialbym by wyswietlao tylko te z iloscia wieksza niz np 10 a srednia np. 4.5 smile.gif jak dam HAVING ilosc>10 to ok ale jeszcze warunek sredniej (AND nie dziala)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.