Meddelande

Minska
No announcement yet.

Visa temperaturskillnader...

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Visa temperaturskillnader...

    Hej på er!

    Jag har en tabell som innehåller en massa temperaturmätningar för olika analysprojekt.

    Kolumnnamn: Sensor (INT)
    Värde: 4250 (Alltså 42.5 C)

    Ett analysprojekt kan innehålla mer än 15.000st temperatur-registreringar. Därför blir det lite tungt att loopa ut varenda rad när man ska skapa t.ex ett jQuery-diagram. Det jag gjort hittills är att t.ex loopa ut var 10 rad, men jag gillar inte riktigt tanken på att eventuell viktig data missas då.

    Så det jag undrar är:
    Kan jag göra en SQL-fråga som bara väljer ut temperaturskillnader som är inom rimliga förändringar? Typ att "Välj bara värden som t.ex är -+0.5 C (alltså 0050) från raden innan... Har svårt att förklara bättre.

    Exempel:
    4250
    4251 <- Bort
    4253 <- Bort
    4220


    Hoppas någon kan hjälpa mig

    / O
    OTCH DSGN - OTCK SKTBDS

    The only pop you'll here from us, is pop from our Glocks!

  • #2
    Förutsatt att det inte finns några gap i id-koiumnen så borde något sådant funka. Dvs, joina in nästa rad, och ta bara med resultatet om skillnaden mellan en rad och nästa rad är större än 50.
    sql:
    SELECT t1.*, t2.* FROM templog t1
    JOIN templog t2 ON t2.id = t1.id + 1
    WHERE ABS(t1.temp - t2.temp) > 50
    ORDER BY t1.id
    Sedan skulle jag eventuellt vilja göra andra sökningar, där du även kollar ökningen över lite längre tid. Denna fråga missar ju en konstant ökning när temperaturen ökar precis 0.5 grader mellan varje mätpunkt.
    Gameboy Genius - Foto: Gatukonst och elektronikporr
    Internklippning:
    1) Snaggning av fångar.
    2) Klippning frisörer emellan.

    Kommentera


    • #3
      Tack Inte testat än, men den ser bra ut.

      Angående att man skulle missa om det är 0.5 C ökning mellan varje mätpunkt... Skulle ju fungera att i så fall bara sänka till t.ex 0.25 C, eller hur? Fast iofs får man med fler resultat då vilket segar ner, men å andra sidan blir det ju mer korrekt.

      Ser inte hur man skulle kunna göra en bredare sökning... Där tar min hjärna slut.


      EDIT: Fast nu kom jag ju på att detta blir helt fel. Om temperaturen varit relativt konstant under flera timmar så kommer ju denna funktionen bara visa typ första värdet... och hoppa över resten eftersom dom är inom godkänt intervall typ.

      Det jag vill är ju att rensa bort "likadana" mätningar men samtidigt behålla några av dom så man får med alla klockslagen.... hm... Har du nån idé?
      Last edited by oskars; 2015-03-04, 11:01.
      OTCH DSGN - OTCK SKTBDS

      The only pop you'll here from us, is pop from our Glocks!

      Kommentera


      • #4
        Det kanske går att summera/gruppera värdena över en vissa tid. t.ex så man får ut min-, max- och medelvärden var 10 minut? Skulle något i den stilen fungera?

        Kommentera


        • #5
          oskars skrev: Visa inlägg
          Det jag vill är ju att rensa bort "likadana" mätningar men samtidigt behålla några av dom så man får med alla klockslagen.... hm... Har du nån idé?
          Sparar du klockslagen då? De syns inte i din tabellstruktur ovan. Vad har du för kolumner?

          Kommentera


          • #6
            Hej på er. Mja jag har fortfarande inte riktigt löst det… Eller snarare… Det finns vissa grejer som gör att det inte blir så lätt.

            nitro's lösning fungerar just nu, men sen kommer inte alla ID:n vara i en följd utan kommer blandas med andra projekt.

            The_Hulk, ja absolut det skulle fungera! Men jag kan inte göra en sån fråga. Skulle du vilja visa?

            aasah, jepp, sparar alla temp-registreringar med ÅÅÅÅ-MM-DD HH:MM:SS

            [ID] [Projekt_ID] [Temperatur] [Tidpunkt]
            OTCH DSGN - OTCK SKTBDS

            The only pop you'll here from us, is pop from our Glocks!

            Kommentera


            • #7
              Nu har jag faktiskt kommit fram till detta som summerar och räknar ut snitt-temperaturen varje timma.

              Hur skulle man kunna justera denna frågan för att få fram snittet från varje halvtimma istället?

              sql:
              SELECT Projektnamn, 
              DATE_FORMAT(Skapad, '%Y-%m-%d %H:%i:%s') AS s,
              (SUM(Temperatur)/count(Temperatur)) AS t,
              FROM tblTemperaturer
              WHERE Projektnamn = '$myProject'
              GROUP BY Projekt, DATE_FORMAT(Skapad, '%Y-%m-%d %H')
              OTCH DSGN - OTCK SKTBDS

              The only pop you'll here from us, is pop from our Glocks!

              Kommentera


              • #8
                Kod:
                select projektnamn
                     , date_format(skapad, '%Y-%m-%d %H:%i:%s') as s
                     , avg(temperatur) as t
                  from tbltemperaturer
                 where projektnamn = '$myProject'
                group
                    by projekt
                     , case when minute(skapad) between 0 and 29
                       then date_format(skapad, '%Y-%m-%d %H:00')
                       else date_format(skapad, '%Y-%m-%d %H:30')
                       end

                Kommentera

                Working...
                X