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

218

Äänestä

    Vastaukset 1

    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. Metsamanin muru kissa kuollut

      Nyt siellä surraan muru kissaa päivä tolkulla,vaikka muuten ei oo välittänyt mitenkään siitä,kun joka videolla vaan mars
      Tuusniemi
      149
      2443
    2. 72
      1014
    3. Kysymys

      Pystyisitkö tutustuu kaverina tai alkaa parisuhteeseen skitsofreenikon kanssa? T.Skitosoaffektiivinen (parantunut) Ois
      Sinkut
      236
      987
    4. Mitä haluaisit kysyä

      kaivatultasi juuri nyt?
      Ikävä
      120
      947
    5. Tapailtaisko nainen

      Meidän kotien puolessavälissä suunnilleen, vähä niinku salaa. Siinä on yks kiva paikka joka sopis hyvin. Mieheltä
      Ikävä
      73
      793
    6. Olisitko valmis lähitulevaisuudessa

      Kohtaamaan minut mies?
      Ikävä
      71
      611
    7. Kissan kuolema

      https://youtube.com/shorts/lJznLVfBTxA?si=h-F1D4Arg4uGjGX- On tuo aivan uskomaton tapaus! Lähes 200 osanottoa ja surun
      Tuusniemi
      90
      571
    8. Haluatko J-mies jutella asiat selviksi vai jäädä palstalle haaveilemaan

      Kuten otsikko sanoo: Haluatko tavata ja jutella, jotta saadaan asioihin selvyys lopullisesti vai haluatko mieluummin haa
      Ikävä
      50
      546
    9. Miten on, luotathan siihen?

      Että vielä tehdään kiihkeästi sitä yhdessä... Tutulle naiselle.❤️‍🔥
      Ikävä
      38
      522
    10. Ei siitä mahdollisesta suhteesta

      saa kukaan tietää jos niin haluat❤️naiselle
      Ikävä
      36
      488
    Aihe