Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie i grupowanie? danych z MySQL
Forum PHP.pl > Forum > Bazy danych > MySQL
ostrylg
Witam,

mam taką bazę danych

uczen_glosy

uczen_id | glos | data

uczeń id to id ucznia na którego był oddany głos, glos to wartość głosu (0 albo 10) oraz data gdzie zapisuję datę oddania głosu w formacie datatime ( Y-m-d h:i:s)

potrzebuję zbudować takie zapytanie które pobierze mi wszystkie głosy z tej tabeli z ostatnich 24 godzin, zliczy ilość głosów na poszczególnego ucznia oraz wartość tych głosów tak żebym mógł obliczyć średnią jaką otrzymał dany uczeń w ostatnich 24 godzinach. Na tę chwilę mam takie zapytanie

  1. SELECT uczen_id,glos,DATA FROM uczen_glosy WHERE DATE_SUB(CURDATE(),INTERVAL 24 HOUR) <= DATA


które zwraca mi rekordy z ostatnich 24 godzin. Jak poradzić sobie z obliczeniem średniej dla każdego ucznia ?
nospor
GROUP BY w połączeniu z SUM oraz AVG
http://dev.mysql.com/doc/refman/5.0/en/gro...ml#function_avg
mortus
A do tego jeszcze COUNT do zliczenia ilości głosów.
ostrylg
Dla potrzebujących smile.gif

  1. SELECT uczen_id, COUNT( uczen_id ) AS ilosc_glosow, SUM( glos ) AS suma_glosow, AVG( glos )
  2. FROM uczen_glosy
  3. WHERE DATE_SUB( CURDATE( ) , INTERVAL 24 HOUR ) <= DATA
  4. GROUP BY uczen_id
  5. LIMIT 0 , 30


Dzięki wielkie za pomoc.

--
edit

Jeszcze małe pytanie, jak wrzucam w zapytanie żeby pobierał tylko rekordy z minimalną ilością głosów to wyskakuje błąd

  1. SELECT uczen_id,suma_glosow,COUNT(uczen_id) AS ilosc_glosow, SUM(glos) AS suma_glosow, AVG(glos)
  2. FROM uczen_glosy WHERE DATE_SUB(CURDATE(),INTERVAL 24 HOUR) <= DATA && suma_glosow > 2 GROUP BY uczen_id


wyskakuje mi

Unknown column 'suma_glosow' in 'where clause'

jak użyć pola 'suma_glosow' w tym zapytaniu ?

kefirek
  1. SELECT uczen_id,suma_glosow,COUNT(uczen_id) AS ilosc_glosow, SUM(glos) AS suma_glosow, AVG(glos)
  2. FROM uczen_glosy WHERE DATE_SUB(CURDATE(),INTERVAL 24 HOUR) <= DATA GROUP BY uczen_id HAVING SUM(glos) > 2
  3.  
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-2025 Invision Power Services, Inc.