Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zliczanie wystapien w odstepach czasu, jak napisać?
BartQ
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 3.02.2006

Ostrzeżenie: (0%)
-----


Mam baze w ktorej jest nazwisko, data_godzina, czynnosc.

Jak policzyc ilosc wystapien X i Y w odstepach co 30< minut.
Czyli zliczac te ktore sa od siebie oddalone o minimum 30 minut.
np.
|naz|data_godzina|cz |
| X |data 12:00:00| --- |<-1
| Y |data 12:01:00| --- |<-1
| X |data 12:02:00| --- |
| Y |data 12:25:00| --- |
| X |data 12:31:00| --- |<-2
| Y |data 12:32:00| --- |<-2
| Y |data 15:02:02| --- |<-3

wynik
X 2
Y 3

Korzystalem z manuala ale wszystkie moje proby podawaly bledny wynik(zliczalo mi wszystkie rekordy).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
vieri_pl
post
Post #2





Grupa: Zarejestrowani
Postów: 406
Pomógł: 9
Dołączył: 24.07.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Możesz użyć funkcji strtotime
Go to the top of the page
+Quote Post
bodhi
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 31.01.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Propozycja:
  1. SELECT s1.naz, count(*)
  2. FROM czas
  3. AS s1 WHERE (s1.czas - interval 30 minute) > any ( SELECT s2.czas
  4. FROM czas
  5. AS s2 WHERE s2.czas < s1.czas AND s1.naz = s2.naz) GROUP BY s1.naz;

gdzie czas to data_godzina
Zlicza ilość odstępów. Sprawdza czy istnieje jakikolwiek rekord o czasie miniejszym o 30 minut.
Jeżeli chcesz sprawdzić czy wcześniejszy rekord jest mniejszy o 30 minut to ja bym usunął any i dodał w zagnieżdżonym zapytaniu max(s2.czas)
Go to the top of the page
+Quote Post
BartQ
post
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 3.02.2006

Ostrzeżenie: (0%)
-----


Wszystko pieknie ale moj MySQL nie obsluguje zagniezdzonych zapytań.
ERROR #1064
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 09:10