Eli on kaksi taulua ”temps” ja ”tempstats”. Kerran vuorokaudessa luetaan antureiden antamat tiedot ”temps” taulusta, lasketaan arvot ja tallennetaan tulokset ”tempstats” tauluun.
Saako tuo jotenkin yksinkertaistettua? Tehtyä esim yhdellä SQL-lausekkeella?
INSERT INTO tempstats (tmp_date) VALUE (CURDATE());
UPDATE tempstats SET sensor1_min = (SELECT MIN(temp) FROM temps WHERE DATE(`datetime`) = CURDATE() and sensor = 0) WHERE (tmp_date = CURDATE());
UPDATE tempstats SET sensor1_max = (SELECT MAX(temp) FROM temps WHERE DATE(`datetime`) = CURDATE() and sensor = 0) WHERE (tmp_date = CURDATE());
UPDATE tempstats SET sensor1_avg = (SELECT AVG(temp) FROM temps WHERE DATE(`datetime`) = CURDATE() and sensor = 0) WHERE (tmp_date = CURDATE());
UPDATE tempstats SET sensor2_min = (SELECT MIN(temp) FROM temps WHERE DATE(`datetime`) = CURDATE() and sensor = 1) WHERE (tmp_date = CURDATE());
UPDATE tempstats SET sensor2_max = (SELECT MAX(temp) FROM temps WHERE DATE(`datetime`) = CURDATE() and sensor = 1) WHERE (tmp_date = CURDATE());
UPDATE tempstats SET sensor2_avg = (SELECT AVG(temp) FROM temps WHERE DATE(`datetime`) = CURDATE() and sensor = 1) WHERE (tmp_date = CURDATE());
Taulut:
temps (id, datetime, temp, sensor)
tempstats (id, tmp_date, sensor1_min, sensor1_max, sensor1_avg, sensor2_min, sensor2_max, sensor2_avg)
MySQL kysymys
1
193
Vastaukset
- Tyhmeliininen
Niin saanenko kysyä miksi haluat laskea noi tiedot toiseen tauluun?
Jos sinulla ei ole tietokannassa satoja miljoonia rivejä niin moinen on ihan turhuutta. Yksinkertaiset laskutoimitukset tehdään kyselyssä.
Tällee pitäisi toimia
SELECT datetime,
MIN(temp) AS minimi,
MAX(temp) AS maksimi,
AVG(temp) AS keskiarvo,
sensor
FROM temps
WHERE DATE(datetime) = CURDATE() AND sensor IN (0, 1)
GROUP BY sensor
Toi siis hakee tänpäivän minimin, maksimin ja keskiarvon sensoreilta 0 ja 1. Jos välttämättä haluat tiedot toiseen tauluun niin insertaat ton kyselyn.
"tempstats (id, tmp_date, sensor1_min, sensor1_max, sensor1_avg, sensor2_min, sensor2_max, sensor2_avg) "
Huono rakenne, tempstats (id, tmp_date, sensor_min, sensor_max, sensor_avg, sensor) parempi. Jos tulevaisuudessa hankit lisää sensoreita niin kohta sinun tavallasi taulussa sarakkeita todella paljon joista monessa tyhjää tietoa, sikti tieto tallennetaan rivettäin.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Persujen kannatusromahdus ilahduttaa
Siin' ei hyvä häviä. Luotto parempaan tulevasuuteen alkaa taas palautua.2084840Silmienvääntelijä-persut pääsivät Japanissa sarjakuvaan
Torille! https://www.hs.fi/kulttuuri/art-2000011943173.html183980Avopuoliso, mies-/naisystävä vai mikä?
Kävin eilen irl keskustelun, joka jätti minut pohtimaan seuraavaa ... millä nimityksellä kutsua henkilöä, jonka kanssa o2193696Huvittava ilmiö: Vasemmistolaiset uskoo sokeasti SDP:n parantavan heidän
elämäänsä, jos demarit johtaa seuraavaa hallitusta (Kyse on siis palstan vasemmistolaisista) Totuus on toinen, nimittäi1253034Pitkän päivän ilta
Tarina elämättömästä miehestä, jonka elämän täytti velvollisuudentunto. Pikkutarkka, huolellinen, hyvällä katsottu, miel1573005Riikka ohoi! Saksa alensi bensaveroa, missä euron bensa?
Perussuomalaisten yksi vaalilupauksista oli euron bensiini suomalaisille autoilijoille. Ei ole näkynyt. Jopa vasemmis592927Miksi Kuhmolaiset on niin nyrpeä ilmeisiä?
Miksi suurin osa (ei onneksi kaikki) on niin typääntyneen näkösiä elämäänsä? Tuijotetaan toisia pahansuopaisesti ja kat152541Tulipalo rivitalossa, tuhoutuu täysin
Kainuun pelastuslaitos sai hieman puolenyön jälkeen maanantaina ilmoituksen rivitalon huoneistossa syttyneestä tulipalos642502Kyllä, maata ei halua puolustaa nimenomaan punavihreän puolen edustajat
"Esimerkiksi maanpuolustushenki on keskimääräistä alempana naisten, arvoliberaalien, heikossa taloustilanteessa olevien822305En selvinnyt ilman naarmuja
Vaikka ehkä kuvittelin sen olevan ilmoitusluonteinen asia, jonka jälkeen kaikki palaa entiselleen ja ilma puhdistuu. Naa132115