GROUP BY dle datetime?

Ing. Pavel PaJaSoft Janousek janousek na fonet.cz
Čtvrtek Leden 18 09:07:28 CET 2001


	Zdravim,

	resim takovyto problem (dotaz mozna na Karla Zaka, ale treba i ostatni
budou mit dobre napady, za ktere predem dekuji):

Mam tabulku, kde se kazdou hodinu pro X uzivatelu storuji nejaka data...
a ja z techto dat potrebuji urcite statistiky. Zajimavym faktem je
(zjisteno empiricky), ze data pro tech X uzivatelu nejprve insertnu a
teprve pak dam commit (nelibi se mi to, ale jak vcera psal do
Pgsql-bugs na ... jinak to zatim nejde:-()- vzhledem k tomu, ze jedna bunka
je definovana jako "cas datetime default 'now'" (kde 'now' by mel byt
deferencovany cas provadeni transakce) neni tomu tak, je to cas, kdy
provadim COMMIT (jinak by vsechny radky plnene danou hodinu mely tezko
porad stejny cas - inserty dohromady se neprovedou v ramci 1 sekundy).
Ale zpet...

je mi zcela jasne, ze pri 'rucnym' pristupu jsem si z DB schopen
spocitat cokoli, ja bych vsak rad z mnoha duvodu maximum prace prenesl
na back-end...

Zajima mne tedy jak napr. formulovat tyto dotazy, abych dostal korektni
vysledky (uvazujme, ze tabulka ma zhruba takovouto strukturu: create
table a(user int, udaj int, cas datetime default 'now'); a ze se kazdou
hodinu provadi X (X>1) insertu, ktere v tuto chvili maji vzdy shodny
'cas' v ramci hodiny (ale do budoucna nepochybne mit asi nebudou))
1. Prumerny (maximalni, minimalni apod.) 'udaj' za urcity den (24 hodin)
pro urciteho uzivatele
2. Prumerny (maximalni, minimalni apod.) 'udaj' za urcity den (24 hodin)
pro vsechny uzivatele dohromady
3. Soucet udaju o vsech uzivatelich v ramci 1 hodiny (nejlepe za 24
hodin s krokem 1 hodina - tedy na vystupu 24 radku)

	Napadaji mne dalsi dotazy, ale pokud je pres GROUP BY (ci jinym
podobnym pristupem (nebo mi navrhnete jiny ktery odpovida ANSI SQL))
mozne konstruovat tyto dotazy a nekdo mi je prozradi (tim mi ukaze, jak
v techto pripadech datetime pouzit) jak, zbytek si uz mozna odvodim sam
a nebude treba marnit cas ostatnich...

	Predem dekuji za napady...

-----------------------------------------------------------------------
Ing. Pavel Janousek (PaJaSoft)                 FoNet, spol. s r. o.
Vyvoj software, Intranet / Internet          Anenska 11, 602 00  Brno
E-mail: mailto:Janousek na FoNet.Cz             Tel.: +420  5  4324 4749
SMS:    mailto:P.Janousek na SMS.Paegas.Cz      Fax.: +420  5  4324 4751
WWW:    http://WWW.FoNet.Cz/               E-mail: mailto:Info na FoNet.Cz
-----------------------------------------------------------------------


Další informace o konferenci Test