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
166
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
Kumpi on sekaisempi - Koskenniemi vai Trump?
Koskenniemi haukkui Trumppia A-studiossa, niin että räkä lensi suusta. Sen sijaan Trump puheessaan sanoi, että Grönlant1773283Saisinpa halata sinua joka päivä
ja kertoa miten paljon sinusta välitän. Vaikka olisi jommalla kummalla huono päivä, väsynyt päivä tai kiireinen päivä, a272227Kolmen tuiki tavallisen demariahdistelijan nimet julki
Nyt tiedetään ketkä kolme oli niissä niin tavanomaisissa demarin jokapäiväisissä askareissa avustajia ahdistelemassa. K562080Sannahan laski sähkön ALV:n 10 prosenttiin, Riikka runnoi 25,5 %:iin
Tässäkin nähdään kumpi on Suomen kansan puolella, ja kumpi omaa vastaan. Putinistipersuille Suomen kansa tulee aina vii652029- 1981920
Martinan pankkikortti
Seiska uutisoi, että Martina antoi pankkilortin tyttärilleen. Siinä on vaan sellainen pointti, että pankkikorttia ei saa3101422Muistattekos kun kaupassa piti pyytää tavarat myyjältä
Edes kahvipakettia ei saanut itse valita, vaan myyjä nouti sen hyllystä tiskille. Jos osti jauhelihaa, niin se jauhettii1961329Riikka Purra perustelee hallituksen leikkauspolitiikkaa
Odotukset ovat kovat, mutta puhe on poikkeuksellisen onttoa jopa hallituksen omalla mittapuulla. Vastuu työnnetään alas,861325Kansalaispalkka ja maksuton joukkoliikenne
Noilla pienillä parannuksilla saadaan Suomesta taas hitusen parempi paikka peruskansalaiselle, joka elää ekologisesti ja1011309- 251277