Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak wyciągnąć wartość średnią na dzień ?
Forum PHP.pl > Forum > Bazy danych > MySQL
sawic
Witam.
Załóżmy:
- w bazie 100 rekordów z 10 dni ( średnio 10 na dzień ).
W każdym rekordzie jest kolumna LICZBA z wartością liczbową.
średnią wartość z kolumny LICZBA wyznaczyć prosto, ale jak wyznaczyć średnią dzienną wartość ?

Można by było zrobić sum(liczba) where data like (jakis_dzien) group by (jakis_dzien), a póżniej w drugim zapytaniu wyciagnać średnią z otrzymanych wyników.

A czy da się to zrobić w jednym zapytaniu ? A jeżeli tak to proszę o jakieś wskazówki.

Pozdrawiam
tiraeth
  1. SELECT sum(liczba) / sum( (SELECT DISTINCT DATA
  2. FROM tabela)
  3. )
  4. FROM tabela

Nie wiem czy to tak trzeba zapisać bo nie mam możliwości przetestowania (posiadam pgsql) ale sądzę, że musisz ułożyć podzapytanie do pobrania dat, bez powtórzeń, a następnie sumę tych zwróconych rekordów smile.gif
Jabol
hmmm... a
  1. SELECT SUM(pole)/10
  2. FROM tabela;
Z matematycznego punktu widzenia nie ma różnicy, czy zrobisz:
((1 + 2 + 3) + (4 + 5+ 6))/2 czy (1 + 3 + 4 + 2+ 5 + 6)/2
tiraeth
A co jeżeli ilość rekordów ma być dynamiczna? I ilość dni też ? Wtedy coś już to dzielenie przez 10 nie da odpowiedniego wyniku smile.gif
sawic
Oczywiście, że dynamiczna ;>
Ale chyba można podzielić na liczbę zliczonych dni.
To już by było proste.
Muszę porozkminiać winksmiley.jpg

Pozdrawiam
Jabol
ha, tiraeth: rzeczywiście, Twoje rozwiązanie to dokładnie to co napisałem tylko elastyczne. Kurcze, powinienem był się zastanowić co napisałeś to bym sobie mógł odpuścić i nie powtarzać drugi raz tego samego.
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.