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

164

    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. Muistakaa persut, että TE petitte, ei kokoomus

      Miksikö kukaan ei arvostele kokoomusta? No sen vuoksi, että kokoomus noudattaa vaalilupauksiaan. Sen sijaan TE persut,
      Maailman menoa
      145
      3218
    2. Seuraava hallituspohja - Kokoomus, kepu, persut + KD

      Kokoomus saa ainakin 20% kannatuksen ensi vaaleissa, keskusta sanoisin noin 15%, persut todennäköisesti enemmän, ehkä 17
      Maailman menoa
      226
      2830
    3. Outo ilmiö - vasemmistolaiset eivät kirjoita mitään kokoomuksesta

      joka sentään johtaa hallitusta, ja jonka talouspolitiikkaa noudatetaan. Nämä muutamat vasemmistolaiset jotka täällä aina
      Maailman menoa
      66
      2200
    4. Maria Veitola kommentoi soutelija Saarion huomionhakuisuutta

      "Minusta on jotenkin kuvottavaa, kuinka kovalla intensiteetillä Suomi-media seuraa miessankari Jari Saarion merihätää. S
      Kotimaiset julkkisjuorut
      286
      1638
    5. Väestöstä vain vassarit vaihtuvat nopeammin kuin persut

      Kevääseen 2023 verrattuna vassareita 50 prosenttia enemmän, ja persuja 25 prosenttia vähemmän.
      Maailman menoa
      5
      1473
    6. Vihervassarit

      Vihervassarit sitä, vihervassarit tätä. Minulla on paha mt-ongelma. Se tuli lobotomian jälkioireina. Vihervassarit tät
      Maailman menoa
      25
      1352
    7. Lopetan ikävöinnin

      Ei meistä enää koskaan tule mitään. Olen ikävöinyt ja kaivannut enkä saa mitään vastakaikua ja lämpöä. Parempi erillään
      Ikävä
      3
      1251
    8. Ei ole liian myöhäistä..

      Tule mun luo ja katso silmiin, niin saadaan taas se sanaton yhteys ja sano sitten vain anteeksi rakas ja suutele ja hala
      Ikävä
      3
      1002
    9. Ei osattu ratkaista etääntymistä

      Mä jäädyin eikä sulla ole taitoa sulattaa. Parempi antaa olla, vaikka toivoin jotain muuta. Miehelle.
      Ikävä
      115
      920
    10. Esprit hoitokdit Varkaudessa?

      Asun keskisuomessa ja käyn satunnaisesti äitini luona Varkaudessa. Äitin tarvitsee kohta hoitajan kotiin tai hoitokodin
      Varkaus
      103
      903
    Aihe