Forum » Programiranje » [MSSQL] Query
[MSSQL] Query
mmaestro ::
Imam sledeč problem, ki ne vem kako ga rešiti. Imam podatke v neki tameli, kjer so notri stolpci: ID, value, dtime. Zadeva je taka, da se v tabelo shranjujejo neke vrednosti recimo vsakih 5s, zdaj pa bi jaz rad npr od datuma npr. 1.12.2006 do 5.12.2006, ven rad dobil podatke v nekak tako:
Primer:
dtime value
1.12.2006 12:15:00 10
1.12.2006 12:16:00 11
1.12.2006 12:17:00 9
1.12.2006 12:18:00 12
1.12.2006 12:19:00 8
1.12.2006 12:21:00 20
1.12.2006 12:22:00 21
1.12.2006 12:23:00 19
1.12.2006 12:24:00 22
1.12.2006 12:25:00 18
Se pravi rad bi dobil rezultat nekaj takega:
1.12.2006 12:15:00 11
1.12.2006 12:21:00 21
Pač čas, ki je v tem vmesnem intervalu, se pravi 5 min, in pa povprečna vrednost v tem 5 minutnem intervalu.
Lepo bi prosil koga za pomoč.
LP
Primer:
dtime value
1.12.2006 12:15:00 10
1.12.2006 12:16:00 11
1.12.2006 12:17:00 9
1.12.2006 12:18:00 12
1.12.2006 12:19:00 8
1.12.2006 12:21:00 20
1.12.2006 12:22:00 21
1.12.2006 12:23:00 19
1.12.2006 12:24:00 22
1.12.2006 12:25:00 18
Se pravi rad bi dobil rezultat nekaj takega:
1.12.2006 12:15:00 11
1.12.2006 12:21:00 21
Pač čas, ki je v tem vmesnem intervalu, se pravi 5 min, in pa povprečna vrednost v tem 5 minutnem intervalu.
Lepo bi prosil koga za pomoč.
LP
mHook ::
Za prvi stolpec odštej sekunde, za drugi pa prikaži samo sekunde.
DATEADD(second, -DATEPART(second, dtime), dtime))
DATEPART(second, dtime)
EDIT: pozabil minus
DATEADD(second, -DATEPART(second, dtime), dtime))
DATEPART(second, dtime)
EDIT: pozabil minus
Zgodovina sprememb…
- spremenil: mHook ()
mmaestro ::
@mHook hvala za odgovor, sam mi ni čisto jasno kaj hočeš povedat oz kako bi si s tem pomagal. Bi te lepo prosil, če bi mi še malo razložil.
LP
LP
mHook ::
V bistvu sem ti odgovoril čisto nekaj drugega kot si rabil.
Ti bi rad vrednost naslednjega intervala prikazano pri prejšnjem?
Kot pišeš se vrednosti shranjujejo vsakih 5s. V primeru izgleda da se piše vsako minuto. Kje so 5s vrednosti? Kaj se zgodi z vrednostmi (sešteje, povprečje)?
Zakaj ti manjka podatek za 12:20?
Kaj ti določa 5-minutne intervale (12:15, 15:21 ni 5 minut narazen)?
In 11 ni povprečje od 15-19. (10+11+9+12+8)/5=10
Daj malo več podatkov (lahko tudi datoteko) in kako bi rad imel podatke prikazane (povprečje za preteklih 5 minut, drseča sredina?).
Ti bi rad vrednost naslednjega intervala prikazano pri prejšnjem?
Kot pišeš se vrednosti shranjujejo vsakih 5s. V primeru izgleda da se piše vsako minuto. Kje so 5s vrednosti? Kaj se zgodi z vrednostmi (sešteje, povprečje)?
Zakaj ti manjka podatek za 12:20?
Kaj ti določa 5-minutne intervale (12:15, 15:21 ni 5 minut narazen)?
In 11 ni povprečje od 15-19. (10+11+9+12+8)/5=10
Daj malo več podatkov (lahko tudi datoteko) in kako bi rad imel podatke prikazane (povprečje za preteklih 5 minut, drseča sredina?).
mmaestro ::
Ja tisto, da je povprešna vrednost 11 sem se zmotil naj bi blo 10.
Tisto glede primera, pač sem si podatke kar malo zmislil, pač vrednosti se ne shranjujejo an točno 5s v bistvu ni nič določeno na kolk se shrani, ko se pač spremeni kak podatek se to zapiše v bazo, sam teh vrednosti je npr v 5 minutah kar dosti.
Pa tisto, ko manjka 12:20 tut ni glih pomembno, tisto je bil zgolj primer na hitro napisan, ki je zmišljen, hotel sem pač samo nekako predstavit, kaj bi rad imel, pa nisem znal glih z besedami vsega napisat.
Glede intervalov in vrednosti je tako, da pač če obravnavamo recimo interval od 12:15 - 12:19, potem zapisalo kot čas zraven povprečja ena številka iz tega intervala npr 12:15, zraven naslednjega 12:20 itd. vrednosti poleg časa pa bi bile povprečje vrednosti, ki pripadajo določeni uri, seštevek vrednosti / št. vrednosti, pač AVG funkcija v sqlu.
Upam, da sem zdaj malo bolj razjasnil kaj hočem.
LP
Tisto glede primera, pač sem si podatke kar malo zmislil, pač vrednosti se ne shranjujejo an točno 5s v bistvu ni nič določeno na kolk se shrani, ko se pač spremeni kak podatek se to zapiše v bazo, sam teh vrednosti je npr v 5 minutah kar dosti.
Pa tisto, ko manjka 12:20 tut ni glih pomembno, tisto je bil zgolj primer na hitro napisan, ki je zmišljen, hotel sem pač samo nekako predstavit, kaj bi rad imel, pa nisem znal glih z besedami vsega napisat.
Glede intervalov in vrednosti je tako, da pač če obravnavamo recimo interval od 12:15 - 12:19, potem zapisalo kot čas zraven povprečja ena številka iz tega intervala npr 12:15, zraven naslednjega 12:20 itd. vrednosti poleg časa pa bi bile povprečje vrednosti, ki pripadajo določeni uri, seštevek vrednosti / št. vrednosti, pač AVG funkcija v sqlu.
Upam, da sem zdaj malo bolj razjasnil kaj hočem.
LP
zigi ::
Pišem fraj glave in nisem to stestiral. Lahko bi naredil nekak takole:
Torej iz tvoje tabele (tabela) kreiraš novo tabelo (tabela1), v kateri potem dobiš ustrezen izpis. Če to sploh dela
if not exist (select 1 from sysobjects where name = 'tabela1') create table tabela1(dtime datetime, value decimal(19,2)) go declare @dtime datetime declare @value int declare @temp decimal(19,2) set @temp = 0.00 declare c cursor for select dtime, value from tabela open c fetch next from c into @dtime, @value while @@fetch_status = 0 begin if (second(@dtime) % 5 = 0)) begin set @temp = @temp / 5 insert into tabela1 values(@dtime, @temp) set @temp = @value end else set @temp = @temp + @value fetch next from c into @dtime, @value end close c deallocate c
Torej iz tvoje tabele (tabela) kreiraš novo tabelo (tabela1), v kateri potem dobiš ustrezen izpis. Če to sploh dela
Zgodovina sprememb…
- spremenil: zigi ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Težave Firefox-omOddelek: Pomoč in nasveti | 2148 (2021) | mikes |
» | Kako najceneje iz Nizozemske in nazaj (strani: 1 2 )Oddelek: Loža | 9377 (8192) | _marko |
» | SMTP problemOddelek: Programska oprema | 973 (887) | |GrEgOr| |
» | [VBA Excel]Oddelek: Programiranje | 1164 (1098) | Muzo |
» | SQL CNVERT; konvertanje datumaOddelek: Programiranje | 1483 (1289) | frudi |