Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wielokrotna statystyka danych w kolumnach jednego rekordu
Forum PHP.pl > Forum > Bazy danych > MySQL
ky3orr
Czołem,

mam nastepujący problem.
-powiedzmy, że mam jedna tabelę w której mam dane typu:
ID_SERII, ID_POMIARU, NAZWA, DATA_1, DATA_2, WYNIK

DATA_1 jest początkiem pomiaru, DATA_2 jego końcem.
WYNIK jest jedną ze zdefiniowanych wartości: W1, W2, W3

I teraz chcę wyciągnąć statystykę za okres pomiędzy dwiema datami tak, żeby pojawiły się następujące wiersze:
NAZWA, ILOSC_WYSTAPIEN_ID_POMIARU AS AMOUNT, ILOSC_WYSTAPIEN_WYNIK=W1 AS W1, ILOSC_WYSTAPIEN_WYNIK=W2 AS W2, ILOSC_WYSTAPIEN_WYNIK=W3 AS W3

Zatem dane:

1, 100, A, 2012-05-20, 2012-05-21, "W1";
1, 101, B, 2012-05-20, 2012-05-21, "W1";
1, 102, C, 2012-05-20, 2012-05-21, "W2";
1, 103, A, 2012-05-20, 2012-05-21, "W2";
2, 104, B, 2012-05-22, 2012-05-23, "W3";
2, 105, B, 2012-05-22, 2012-05-23, "W1";
2, 106, C, 2012-05-22, 2012-05-23, "W3";
3, 107, C, 2012-05-25, 2012-05-26, "W1";

wyciągniete za okres powiedzmy 2012-05-20 do 2012-05-27 powinny dać taki oto wynik:

A, 2, 1, 1, 0;
B, 3, 2, 0, 1;
C, 3, 1, 1, 1;


Umiem już wyciągnąć dane z tabeli pomiarowej za zadany okres i policzyć ILOSC_WYSTAPIEN_ID_POMIARU ponieważ jest to COUNT(ID_POMIARU) po tym jak robię GROUP BY ID_POMIARU.

Problem w tym jak w tym samym wierszu dodać jeszcze obliczenia dla 3 ostatnich kolumn? Czy to mają być jakieś selecty w sekcji SELECT zapytania głównego?
Czy można jakoś wirtualnie skorzystać z danych wyciągając je do wirtualnej tabeli czy dla każdej z 3 ostatnich kolumn trzeba je wyciągać na nowo by obliczyć każde ILOSC_WYSTAPIEN_WYNIK?
Trudność jest tym większa, że mam to opracować w formie jednego zapytania.

dzięki za sugestie.

pozdrawiam
Smertius
  1. SELECT nazwa,COUNT(ID_POMIARU) , COUNT(IF(WYNIK = 'W1', 1, NULL)) AS wystapienia_w1 FROM tabeleczka GROUP BY ID_POMIARU


Powyżej masz przykład dla jednej wartości (W1), dla reszty robisz analogicznie.
ky3orr
Czołem Smertius,

Pytanko: czy "tabeleczka" to jest cała tabela z poimi pomiarami czy jakaś, której wyniki są już zawężone do żądanego przedziału czasu?

dzięki za pomoc!
Smertius
Tak to tabela z twoimi pomiarami.
ky3orr
Statystyki działają jak należy. I do tego szybko smile.gif

pozdrawiam
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.