ďťż
 
mysql, statystykl, jak wyciagnac dane rozkladu czasu ze wzgledu na okres pelnych godzin ďťż
 
mysql, statystykl, jak wyciagnac dane rozkladu czasu ze wzgledu na okres pelnych godzin
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

mysql, statystykl, jak wyciagnac dane rozkladu czasu ze wzgledu na okres pelnych godzin



Dewel - 10-04-2007 00:02
mysql, statystykl, jak wyciagnac dane rozkladu czasu ze wzgledu na okres pelnych godzin
  Witam

sr za masło maślane w temacie ciężko jest to ująć w 1 zdaniu.

Chce wygenerować graficzny rozkład danych
gdzie oś x to Wartości godzin a oś y liczba podobnych danych np liczba wejść

Zakładając taka uproszczoną strukturę tabeli:
CREATE TABLE `cms_stats` (
`stat_id` int(11) NOT NULL auto_increment,
`stat_data` varchar(255) NOT NULL,
`stat_time` time NOT NULL,
PRIMARY KEY (`stat_id`)
) ;

Jest możliwe za pomocą 1 zapytania wyciągnięcie danych tak aby były
przyporządkowane do okresu godzin od 00 do 23

bez sensu jest zadawanie 24 zapytań typu:
SELECT * FORM TABLE stat_time BETWEEN '00:00:00' AND '01:00:00';//liczba
danych z okresu od godziny 0 do 1 itd...
SELECT * FORM TABLE stat_time BETWEEN '01:00:00' AND '02:00:00';
SELECT * FORM TABLE stat_time BETWEEN '02:00:00' AND '03:00:00';
......
SELECT * FORM TABLE stat_time BETWEEN '23:00:00' AND '00:00:00';

Nie chce też wyciągać wszystkie dane 1 zapytaniem:
SELECT * FORM TABLE stat_time
i obrabiać je później w php

Podobne statystyki muszę zrobić w oparciu o dni tygodnia , czy miesiąca
Jak się do tego zabrać aby było możliwie najbardziej wydajne.

Chodzi o rozwiązanie w oparciu o mysql od 4.1

Dzięki za pomoc
--
Dewel





jerzy - 10-04-2007 00:02

  Dewel napisał(a):
> Witam
>
> sr za masło maślane w temacie ciężko jest to ująć w 1 zdaniu.
>
> Chce wygenerować graficzny rozkład danych
> gdzie oś x to Wartości godzin a oś y liczba podobnych danych np liczba wejść
>
> Zakładając taka uproszczoną strukturę tabeli:
> CREATE TABLE `cms_stats` (
> `stat_id` int(11) NOT NULL auto_increment,
> `stat_data` varchar(255) NOT NULL,
> `stat_time` time NOT NULL,
> PRIMARY KEY (`stat_id`)
> ) ;
>
> Jest możliwe za pomocą 1 zapytania wyciągnięcie danych tak aby były
> przyporządkowane do okresu godzin od 00 do 23
>
> bez sensu jest zadawanie 24 zapytań typu:
> SELECT * FORM TABLE stat_time BETWEEN '00:00:00' AND '01:00:00';//liczba
> danych z okresu od godziny 0 do 1 itd...
> SELECT * FORM TABLE stat_time BETWEEN '01:00:00' AND '02:00:00';
> SELECT * FORM TABLE stat_time BETWEEN '02:00:00' AND '03:00:00';

a sprawdziłeś z "palca" czy between się na pewno nadaje?
teraz nie pamiętam na 100% ale wydaje mi się że nie uwzględnia wartości
granicznych. Potrzebujesz raczej >= <= niż between. Ale mogę się mylić.
ja użył bym like np.
SELECT * FORM TABLE stat_time like '02%'; (like jest podobno mniej wydajne)
to tak na marginesie ...

> .....
> SELECT * FORM TABLE stat_time BETWEEN '23:00:00' AND '00:00:00';
>
> Nie chce też wyciągać wszystkie dane 1 zapytaniem:
> SELECT * FORM TABLE stat_time
> i obrabiać je później w php
>
>
> Podobne statystyki muszę zrobić w oparciu o dni tygodnia , czy miesiąca
> Jak się do tego zabrać aby było możliwie najbardziej wydajne.
>
>
>
> Chodzi o rozwiązanie w oparciu o mysql od 4.1
>
> Dzięki za pomoc

jak przekazać silnikowi żeby zwrócił wynik pogrupowany wg godzin dni
tygodni itd.
hmmmm. może
SELECT * FORM TABLE stat_time
group by stat_time
having stat_time=taaak_może_podzapytanie_czy_cóś?;
wesołego dyngusa
J




jerzy - 10-04-2007 00:02

 
> jak przekazać silnikowi żeby zwrócił wynik pogrupowany wg godzin dni
> tygodni itd.
> hmmmm. może

SELECT stat_time, count(stat_time) FORM TABLE stat_time

> SELECT * FORM TABLE stat_time
where stat_time= '?'
> group by stat_time
> having stat_time=taaak_może_podzapytanie_czy_cóś?;




Dewel - 10-04-2007 00:02

  Witam

dzięki ale chyba źle zostałem zrozumiany

w ten sposób musze wysłać 23 zapytania do bazy a jak będę chciał to zrobić
dla np dni miesiąca to musze wysłać 30 zapytań. Jest to bardzo złe
rozwiązanie liczyłem że da się to zrobić w jakiś inny sprytny sposób 1
zapytaniem lub dwoma.

poniedziałek, 9 kwietnia 2007 13:46 jerzy napisał(a):

>
>> jak przekazać silnikowi żeby zwrócił wynik pogrupowany wg godzin dni
>> tygodni itd.
>> hmmmm. może
>
> SELECT stat_time, count(stat_time) FORM TABLE stat_time
>
>> SELECT * FORM TABLE stat_time
> where stat_time= '?'
>> group by stat_time
>> having stat_time=taaak_może_podzapytanie_czy_cóś?;

--
Dewel





Menel - 10-04-2007 00:02

  Dewel <nospam@localhost.localdomain> napisał(a):

> >
> >> jak przekazać silnikowi żeby zwrócił wynik pogrupowany wg godzin dni
> >> tygodni itd.
> >> hmmmm. może
> >
> > SELECT stat_time, count(stat_time) FORM TABLE stat_time
> >
> >> SELECT * FORM TABLE stat_time
> > where stat_time= '?'
> >> group by stat_time
> >> having stat_time=taaak_może_podzapytanie_czy_cóś?;
>
stat_time jako timestamp i formatowanie stat_time np.

SELECT count(*) as ilosc, date_format(stat_time,'%k') as godzina
FROM cms_stats
group by date_format(stat_time,'%k');

albo

SELECT count(*) as ilosc, date_format(stat_time,'%W') as dzien_tygodnia
FROM cms_stats
group by date_format(stat_time,'%W');

pozdr.

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/




Dewel - 10-04-2007 00:02

  poniedziałek, 9 kwietnia 2007 23:17 Menel napisał(a):

> Dewel <nospam@localhost.localdomain> napisał(a):
>
>
>> >
>> >> jak przekazać silnikowi żeby zwrócił wynik pogrupowany wg godzin dni
>> >> tygodni itd.
>> >> hmmmm. może
>> >
>> > SELECT stat_time, count(stat_time) FORM TABLE stat_time
>> >
>> >> SELECT * FORM TABLE stat_time
>> > where stat_time= '?'
>> >> group by stat_time
>> >> having stat_time=taaak_może_podzapytanie_czy_cóś?;
>>
> stat_time jako timestamp i formatowanie stat_time np.
>
> SELECT count(*) as ilosc, date_format(stat_time,'%k') as godzina
> FROM cms_stats
> group by date_format(stat_time,'%k');
>
> albo
>
> SELECT count(*) as ilosc, date_format(stat_time,'%W') as dzien_tygodnia
> FROM cms_stats
> group by date_format(stat_time,'%W');
>
> pozdr.
>

Dzięki to powinno działać niestety musze mieć oddzielnie czas i date aby
dało się posortować dane według tych wartości ale może da się to jakoś
obejść.

Jeszcze raz dziękuje za pomoc

--
Dewel
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?= [mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?= [MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?= [mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?= [MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?= [MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?= Gdzie MySQL 4.1, a gdzie 5.0? [MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?= [MS SQL] "set names" (mySQL) w MS SQL [mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • autwywalczyl.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com