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. Ei käy sääliksi sitä miestä

      Sitä saa mitä tilaa.
      Ikävä
      165
      1434
    2. En ehkä onnistu siinä

      Kovasti minä yritän näyttää kauniilta, vain sinua varten, mutta en taida onnistua siinä.
      Ikävä
      58
      705
    3. Muistakaa pojat tämä.

      Mies joka haluaa naisen, löytää keinon. Ei epäröi eikä hämmennä. Tekee kaiken eteenne.
      Ikävä
      87
      667
    4. Muhun rakastuu kaikki naiset, mut mä en rakastu niihin

      Mun vaatimustaso on 10+ Mut mua tavottelee 7+ naiset
      Ikävä
      203
      558
    5. Oletko päättänyt

      Että luovutat minun suhteeni
      Ikävä
      48
      516
    6. Kirjoita kolme sanaa

      mistä kaivattusi voisi sinut tunnistaa.
      Suhteet
      37
      506
    7. Viesti jonka haluaisit lähettää...

      hänelle. Onko jokin pieni tunniste jonka vain te tiedätte. Onko naiselta miehelle tai toisinpäin, joku joku päivämäärä
      Ikävä
      15
      480
    8. Mies,oletko koskaan...

      Käyttänyt maksullista naista?
      Ikävä
      112
      473
    9. toivottavasti kohta jo kohdataan

      😍😍😍😍😍 sinua olen odottanut varmasti koko elämäni
      Ikävä
      25
      473
    10. Pahoin pelkään nainen

      että pidät minua epäempaattisena, itsekeskeisenä, narsistisena ja kylmänä ihmisenä. Oletko koskaan ajatellut, että minus
      Ikävä
      46
      460
    Aihe