Autor | Zpráva | ||
---|---|---|---|
FantomX1 Profil |
#1 · Zasláno: 30. 11. 2005, 15:43:52 · Upravil/a: FantomX1
Ako možem vytvoriť dotaz na vybratie času kedy bolo prihlásených najviac ľudí online súčasne. Tak ako to napríklad býva na mnohých fórach. Ja by som to chcel použiť na chate.
Dá sa to spraviť keď mám v databáze v tabuľke 2 stĺpce, jeden prihlásenie, druhý odhlásenie? A oba sú typu INT zaznamenávajú UNIX TIMESTAMP ako počet sekúnd od roku 1.1.1970. Zaznamenávam si takto všetky prístupy na chat, len by som vedel ako napríklad dostanem sekundy, kedy bolo prihlásených najviac ľudí online. Proste vycucnúť odtiaľ nejak ten čas správnym SQL dotazom. Sformátovať si čas na správny formát si už dokážem. Ďakujem všetkým fachmanom, analytikom a fanatikom do SQL za rady. ------------- FANTOMX1 |
||
Kajman_ Profil * |
#2 · Zasláno: 30. 11. 2005, 15:56:49
Pro poslední den, nebo celkově?
Ono to totiž asi moc dobře nepůjde a asi bude třeba spočítat každou minutu jiný součet a z něho to maximum udělat. |
||
FantomX1 Profil |
#3 · Zasláno: 30. 11. 2005, 15:59:02
Ano, celkovo. Viem, že to nebude asi najjednoduchšie, ale mýslím si, že by to nejak malo isť.
|
||
Kajman_ Profil * |
#4 · Zasláno: 30. 11. 2005, 16:03:18
Myslím, že počítat to nad všemy daty v reálném čase je nesmyl. Asi bych si nachystal tabulku s jendotlivými minutami a tu nějak postupně plnil těmi součty.
|
||
vrbcik Profil |
#5 · Zasláno: 30. 11. 2005, 16:27:00
Prozmýšľam nad tým. Podľa mňa však servre nevyberajú: "okamih, v ktorom bolo prihlásených najviac ľudí" ale dajme tomu podľa hodiny dňa zgrupujú prihlaseny_od a prihlaseny_do:
konverziu dátumu na hodinu píšem v Oracle syntax, je mi to bližšie: to_char (datum_prihlasenia , 'HH24')
Samozrejme, podobný dotaz dá sa urobiť aj po sekundách, ale tá záťaž... Ešte porozmýšľam nad lepším riešením. |
||
kaifman Profil |
#6 · Zasláno: 30. 11. 2005, 16:33:01
tabulka posledniPristup(
uzivatel int, cas datetime) pri kazdem obnoveni updatnes tuto tabulku pro toho uzivatele a zaroven se do ni podivas select count(*) from posledniPristup where cas between date_sub(now(), interval 15 minute) and now() nekde v souboru nebo v db budes mit ulozen maximalni pocet a datum s casem coz porovnas s vysledkem a pokud to bude vic tak to si to ulozis |
||
vrbcik Profil |
#7 · Zasláno: 30. 11. 2005, 16:52:13
Ahoj, tak malé vylepšenie, ktoré nájde presný okamih (sekunda) a počet prihlásených užívateľov.
Je vhodné po určitom čase (napr. 31.12.2005) hodnoty uložiť a zapamätať si túto hodnotu. Ďalšie selecty budú vyberať iba počty prihláseni po 31.12.2005:
|
||
vrbcik Profil |
#8 · Zasláno: 30. 11. 2005, 17:01:00
kaifman jojo, Tvoje riešenie je praktickejšie a menej náročné, ak príde 40 užívateľov a bude cchieť vidieť tento údaj :-)
|
||
kaifman Profil |
#9 · Zasláno: 30. 11. 2005, 17:10:38 · Upravil/a: kaifman
jj zvlaste pokud se jeste atribut cas oddeli do zvlast tabulky a nebude klasicky v tabulce uzivatel kam by se na prvni pohle ihned hodil tabulu bych udelal takhle
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0