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
194
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
Puoluebarometri: Marinin hallituksella 7 parasta mittaustulosta
Orpon hallitusta pitää huonona 2/3 kansalaisista, joka on aika hyvin linjassa hallituspuolueiden yhteenlasketun kannatuk974198Pride-rautu korvaamaan kirjolohi
Kekkosen saatanan tunari meni muuttamaan aikoinaan sateenkaariväen kalan nimen. Unkarin vallankumouksen innoittamana n292288Purran aikaisemmat kannattajat siirtyneet Lindtmanin leiriin
Melkoinen muutos on käynnissä Suomen politiikan kentällä. Tulevista häviäjistä on hirmuinen kiire päästä ajoissa voittaj512078Olen parasta a-luokkaa
Kerron nyt teille, että olen äärimmäisen utelias, ja iitserakas ihminen. Teen paljon aloituksia itseäni koskien ja tunge361444- 371285
Se mua jotenkin harmittaa
Et ko sulla ollu näin paljon selvästi mielenpäällä ollut kaikkea, kysymyksiä, neuvoteltavia asioita ja huolenaiheita, et111213Työeläkkeet ovat pois työntekijän palkasta
Jokainen työeläkkeen nimissä maksettu euro on otettu pois työtä tekevältä palkansaajalta. Mitä korkeampi työeläketaso o15996Oot tosi epätavallinen
ja erikoinen nainen. Tykästyä ikihyviksi sun kaltaiseen naiseen, mitä tästä pitäis edes ajatella.47995Shakki ja matti
Toivoisin, että olisit läsnä ja tukena arjessani. Et edes tietäisi, että se olen minä tässä ja täällä vain. Olisi asioit77965Järkyttävä hetki - Ellen Jokikunnas pöyristyy italialaisen lääkärin työstä
Unelmia Italiassa -sarjassa ollaan Ellen Jokikunnaksen perheen kanssa Italiassa. Jokikunnas ja Rask ovat rempanneet kakk6838