MySQL kysymys

Sql My

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)

1

185

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 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

    1. Persujen vaalilupaus oli euron bensa

      Nyt puhutaan jo kolmen euron bensasta. Kyseessä on Suomen historian törkein vaalipetos.
      Maailman menoa
      89
      2088
    2. Vain vasemmistohallitus saa minut menemään töihin

      Änkyräkapitalistien sortaessa kansaa en laita rikkaakaan ristiin. Elän mielummin Kelan tuilla, ja jos niitä leikataan, n
      Maailman menoa
      33
      2050
    3. Maataloustuet perittävä korkojen kera takaisin

      Yrittäjiltä jotka ovat myyneet tuotantoaan ulkomaille. Veronmaksajan kustantama tuki on tarkoitettu elintarvikkeiden hi
      Maataloustuki
      50
      1825
    4. Topi osti Askon

      Hieno mies. Pelastaa työpaikkoja. Kiitokset myös emännälleen, joka pitää isännän virkeänä. https://www.is.fi/taloussan
      Maailman menoa
      75
      1350
    5. Mitä kirjainta kaipaat?

      Pitkästä aikaa tämmöistä. Onko kirjain muuttunut edellisestä. ☺️
      Ikävä
      86
      1231
    6. Kastaa ja upottaa on eri sanat

      Kastaa ja upottaa on eri sanat ja niillä on eri merkitys. Eikä Jeesusta haudattu upottamalla maahan kaivettuun kuoppaan
      Kaste
      219
      1131
    7. Uskomatonta touhua!

      Ei olis uskonut että kateus yrittäjää kohtaan menee noin pitkälle. TTP:ssa irrotettu sähköjohto jäätelöaltaasta. Kaikki
      Haapavesi
      31
      1019
    8. Miten hän sinua katsoi?

      😊😊😊😊😊😊
      Ikävä
      67
      916
    9. Oliko se oikeasti epäselvää

      sinulle että olin ihastunut sinuun? (Ymmärrän että siitä on aikaa, eikä voi olettaa että kaikkea muistaisi tai että men
      Ikävä
      48
      912
    10. Miksi eduskuntatalon portaille sytyttään tänään 8 645 kynttilää?

      Oikeus elämään ry järjestää lauantaina 21.3.2026 tapahtuman, jossa Eduskuntatalon portaille sytytetään 8 645 kynttilää.
      Luterilaisuus
      279
      877
    Aihe