Mam tabelę (MySQL), która przechwytuje próbki co n sekund. Tabela ma wiele kolumn, ale liczy się tylko dwa: znacznik czasu (typu TIMESTAMP) i licznik (typu INT).SELECT/GROUP BY - segmenty czasu (10 sekund, 30 sekund, itp.)
Co chciałbym zrobić, to uzyskać sumy i średnie z kolumny liczenia w różnych przedziałach czasowych. Na przykład mam próbki co 2 sekundy nagrane, ale chciałbym, aby suma kolumn zliczania dla wszystkich próbek była wyświetlana w oknie 10-sekundowym lub 30-sekundowym dla wszystkich próbek.
Oto przykład danych:
+---------------------+-----------------+ | time_stamp | count | +---------------------+-----------------+ | 2010-06-15 23:35:28 | 1 | | 2010-06-15 23:35:30 | 1 | | 2010-06-15 23:35:30 | 1 | | 2010-06-15 23:35:30 | 942 | | 2010-06-15 23:35:30 | 180 | | 2010-06-15 23:35:30 | 4 | | 2010-06-15 23:35:30 | 52 | | 2010-06-15 23:35:30 | 12 | | 2010-06-15 23:35:30 | 1 | | 2010-06-15 23:35:30 | 1 | | 2010-06-15 23:35:33 | 1468 | | 2010-06-15 23:35:33 | 247 | | 2010-06-15 23:35:33 | 1 | | 2010-06-15 23:35:33 | 81 | | 2010-06-15 23:35:33 | 16 | | 2010-06-15 23:35:35 | 1828 | | 2010-06-15 23:35:35 | 214 | | 2010-06-15 23:35:35 | 75 | | 2010-06-15 23:35:35 | 8 | | 2010-06-15 23:35:37 | 1799 | | 2010-06-15 23:35:37 | 24 | | 2010-06-15 23:35:37 | 11 | | 2010-06-15 23:35:37 | 2 | | 2010-06-15 23:35:40 | 575 | | 2010-06-15 23:35:40 | 1 | | 2010-06-17 10:39:35 | 2 | | 2010-06-17 10:39:35 | 2 | | 2010-06-17 10:39:35 | 1 | | 2010-06-17 10:39:35 | 2 | | 2010-06-17 10:39:35 | 1 | | 2010-06-17 10:39:40 | 35 | | 2010-06-17 10:39:40 | 19 | | 2010-06-17 10:39:40 | 37 | | 2010-06-17 10:39:42 | 64 | | 2010-06-17 10:39:42 | 3 | | 2010-06-17 10:39:42 | 31 | | 2010-06-17 10:39:42 | 7 | | 2010-06-17 10:39:42 | 246 | +---------------------+-----------------+
Wyjście Chciałbym (na podstawie powyższych danych) powinien wyglądać następująco:
+---------------------+-----------------+ | 2010-06-15 23:35:00 | 1 | # This is the sum for the 00 - 30 seconds range | 2010-06-15 23:35:30 | 7544 | # This is the sum for the 30 - 60 seconds range | 2010-06-17 10:39:35 | 450 | # This is the sum for the 30 - 60 seconds range +---------------------+-----------------+
Użyłem GROUP BY, żeby zebrać te numery na sekundę lub minutę, ale nie mogę wydawać się, aby dowiedzieć się składni, aby uzyskać podrzędne minuty lub zakres sekund polecenia GROUP BY działać poprawnie.
Przeważnie zamierzam używać tego zapytania do przesyłania danych z tej tabeli do innej tabeli.
Dzięki!
Idealnie! To * dokładnie * to, czego potrzebowałem! Wielkie dzięki! –