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
148
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
Eli persujen rääkyminen Marinin hallituksen velanotosta oli sitä itseään
"Valtiovarainministeriön mukaan Marinin hallitus lisäsi valtion pysyviä menoja 3 miljardia eikä 11 miljardia euroa." El746344MTV3 - Auerin poika todistaa videolla, miten Anneli pahoinpiteli lapsia!
Kello 10.04 – Ainakin kerran viikossa se löi. Löi muitakin sisaruksia, mutta ei isosiskoa. Nuorinta siskoa en ole nähny415418Orpon hallitus paskoi kaikki hommat
ja "yllätäen" ilmestyi raportti Marinin hallituksen tuhlailusta, raportti tuli kuin TILAUKSESTA.614274NO NIIN! Nyt on sitten prinsessa Sannan sädekehä lopullisesti rikottu
narsistia ei kannata enää kuin ne fanaattisimmat kulttilaiset, jotka ovat myös sitä Suomen heikkoälyisintä sakkia. Kun734142Kansa haluaa Marinin hallituksen takaisin ja Orpon pois
Suomen kansa on nyt ilmoittanut millaisen hallituksen Suomi tarvitsee. "Suomalaisten suosikki seuraavaksi hallituspohja673901Mikä piirre kaivatussa on sinulle se juttu?
Tunnetko kaivattuasi vai onko hän haavekuva, jota et edes tunne? Joskus tää asia ei ole niin selvää.751233- 3281095
- 601060
Onko kaivattusi muuttunut sinä aikana
Kun olet hänet tuntenut? Jos, mihin suuntaan? Mistä epäilet muuttumisen johtuneen?32880Toivotko, että
Toivotko, että hän yrittäisi jutella sinulle? Vai toivotko, että itse voisit mennä juttelemaan?62821