![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie.
Potrzebuję wykonać takie zapytanie do bazy: Z rekordów od teraz wstecz o 1440 minut wyszukaj rekordy, które po sobie miały wartość 0. Jeśli znajdzie zwróci true. Dla zobrazowania. 2018-03-04 13:30:00 1 2018-03-04 13:31:00 1 2018-03-04 13:32:00 1 2018-03-04 13:33:00 0 | 2018-03-04 13:34:00 0 | 2018-03-04 13:35:00 0 | 2018-03-04 13:36:00 0 | 2018-03-04 13:37:00 0 | Tu znalazł 10 rekordów po sobie więc zwraca TRUE 2018-03-04 13:38:00 0 | 2018-03-04 13:39:00 0 | 2018-03-04 13:40:00 0 | 2018-03-04 13:41:00 0 | 2018-03-04 13:42:00 0 | 2018-03-04 13:43:00 1 2018-03-04 13:44:00 1 2018-03-04 13:45:00 0 | 2018-03-04 13:46:00 0 | Ale tu już nie było 10 po sobie więc je pomija. 2018-03-04 13:47:00 1 2018-03-04 13:48:00 1 Nie mam pojęcia jak się zabrać za takie zapytanie Proszę o pomoc bardziej doświadczonych. Na razie mam tylko do wyszukiwania ile razy było 0
Ten post edytował topcio 4.03.2018, 13:45:40 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 807 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Natrafiłem jednak na pewnie problem w rozwiązaniu mmmmmmmm, otóż gdy np mamy po sobie 14 rekordów z zerami on to zaliczy razy 3, a powinien tylko raz, to chyba powinno być w tym ustawieniu + interval 9 minut, aby więcej też zliczał, może jakieś MIN tam wstawić, ale jak tego nie wiem. Rozwiązanie mmmmmmm nie jest prawidłowe, bo opiera się na założeniu, że rekordy są w postaci ciągłej. Wystarczy zmienić 13:42 kończącą zakres zer na 13:50 i dalej kolejne godziny, i wynik jest niepoprawny. Pisałem, że rozwiązanie, które podałem można uprościć gdyby rekordy były w postaci ciągłej, ale w Twoim założeniu może być przerwa. Zamiast zapytania, możesz wynik "otrzymywać" w trakcie zapisu rekordów. Mianowicie tworzysz drugą tabelę z godziną, flagą i ilością, i w momencie pojawienia się nowego rekordu: 1. Jeśli dla danej godziny jest flaga 0 i ostatnia zapisana godzina miała również flagę 0, to dodajesz do kolumny ilość ostatniego rekordu 1. 2. Jeśli dla danej godziny jest flaga 0 i ostatnia zapisana godzina miała flagę 1, to zapisujesz nową godzinę z ilością 0 i flagą 0. 3. Analogicznie robisz dla flagi 1. Ten post edytował trueblue 5.03.2018, 08:39:15 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 19:12 |