Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Može li ovo kao SQL upit bez privremene tabele?

[es] :: Baze podataka :: Može li ovo kao SQL upit bez privremene tabele?

[ Pregleda: 1682 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

pisac

Član broj: 13046
Poruke: 4578



+3341 Profil

icon Može li ovo kao SQL upit bez privremene tabele?29.09.2011. u 21:25 - pre 153 meseci
Zanima me da li ovaj postupak može da se izvede drugačije (stručnije), bez privremene tabele, sve u jednoj SQL komandi?

Evo objašnjenja: nekoliko temperaturnih senzora su postavljeni jedan pored drugog u sobi, da bi se videla međusobna odstupanja izmerene temperature u nekom periodu, a onda se u tabelu senzora to odstupanje unese kao "korekcija" tako da svi senzori ubuduće pokazuju što sličniju vrednost. Znači, u nekom periodu imamo opšti prosek svih senzora i pojedinačne proseke svakog senzora, a u tabelu senzora na kraju unosimo vrednost korekcije. Nakon toga, uz tu korekciju, svi bi senzori trebalo da pokazuju istu temperaturu.

To je inače trebalo odraditi samo za određenu grupu senzora koja nije imala svoje ime, i nalazila se pored senzora koji se zvao 'soba'.

Tabele su: Temp2 sadrži polja za senzor(id), vreme, temp(eraturu). Senzor2 sadrži polja za senzor(id), ime, korekcija

Citat:

CREATE TEMPORARY TABLE `Korekcija` (
`senzor` tinytext NOT NULL,
`korekcija` decimal(9,4) NOT NULL
);

set @prosek=(select avg(t.temp) from Temp2 t join Senzori2 s on t.senzor=s.senzor where (ime='' or ime='soba') and vreme>'2011-09-28 09:30:00' and vreme<'2011-09-28 17:55:00');

insert into Korekcija select s.senzor,@prosek-avg(t.temp) from Temp2 t join Senzori2 s on t.senzor=s.senzor where (ime='' or ime='soba') and vreme>'2011-09-28 09:30:00' and vreme<'2011-09-28 17:55:00' group by t.senzor;

Update Senzori2 join Korekcija on Senzori2.senzor=Korekcija.senzor set Senzori2.korekcija=Korekcija.korekcija where Senzori2.senzor=Korekcija.senzor;


Može li ovo da se strpa sve u jednu naredbu? Koristim MySQL.
 
Odgovor na temu

pisac

Član broj: 13046
Poruke: 4578



+3341 Profil

icon Re: Može li ovo kao SQL upit bez privremene tabele?08.10.2011. u 01:16 - pre 152 meseci
Nema predloga?

Dakle, iz jedne tabele za neki period vremena treba izvući prosek grupe senzora, pa za isti period izračunati prosek svakog pojedinačnog senzora i razliku te dve vrednosti upisati u karakteristiku senzora u drugoj tabeli.

Da li to može da se uradi jednostavnije ili kompaktnije nego što sam ja uradio?
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
46.188.129.*



+19 Profil

icon Re: Može li ovo kao SQL upit bez privremene tabele?08.10.2011. u 17:56 - pre 152 meseci
pogledaj funkcije

http://www.databasejournal.com...846/MySQL-Stored-Functions.htm

 
Odgovor na temu

[es] :: Baze podataka :: Može li ovo kao SQL upit bez privremene tabele?

[ Pregleda: 1682 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.