kostenloser Webspace werbefrei: lima-city


Datensätze ohne Änderung zum vorigen Wert löschen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    derbasti

    derbasti hat kostenlosen Webspace.

    Hallo,

    heute habe ich eine Frage an alle SQL-Profis. Und zwar möchte ich eine Tabelle meiner Datenbank aufräumen. Die Tabelle speichert u.a. Temperaturen, den zugehörigen Zeitpunkt und hat folgenden aufbau:

    Spalte 1: Id [Unsigned Integer], eindeutige, fortlaufende Id über alle Einträge
    Spalte 2: Sensornummer [Unsigned Short], die Id des Sensors, von dem der Messwert stammt
    Spalte 3: Messwert [Double], der eigentliche Messwert
    Spalte 4: Zeit [DateTime], die Uhrzeit zu dem der Messwert aufgenommen wurde

    Anfänglich habe ich alle 15 Minuten alle Sensoren abgefragt und die Werte gespeichert. Da unsere Fußbodenheizung ja träge ist, gibt es häufig innerhalb dieser Zeit keine Änderung des Messwertes. Da mich eigentlich nur die Einträge interessieren, bei denen sich der Messwert eines Sensors zum vorhergehenden geändert hat, habe ich die Erfassung jetzt entsprechend geändert:

    - es wird zunächst für jeden Sensor der letzte Wert aus der Datenbank gelesen
    - nur wenn der letzte Wert ungleich dem aktuellen Wert ist, wird in die DB gespeichert

    Das funktioniert jetzt ganz gut. Allerdings habe ich in der Tabelle jetzt noch alle "Duplikate" der früheren Speicherart. Diese möchte ich löschen. Eine einfache Duplikat-Suche geht ja nicht, da ja die Sensoren durchaus regelmäßig den gleichen Wert liefern können. Es darf eben nur nicht in Folge passieren.

    Die Aufgabe ist also:

    Lösche alle Datensätze mit der ID = n, wenn der direkt vorhergehende Messwert oldX des Sensors y gleich dem aktuellen Messwert aktX ist.

    Leider reichen meine bescheidenen SQL-Kenntnisse nicht aus das zu lösen. Ich Danke Euch!

    DerBasti

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. h***********r

    Die einfachste Möglichkeit wäre sicherlich mit einem Script über die Datenbank zu gehen und die gewünschten Werte zu löschen.
  4. Autor dieses Themas

    derbasti

    derbasti hat kostenlosen Webspace.

    Hallo horstexplorer,

    daran hab ich auch schon gedacht. Nachdem Du das nun auch so vorgeschlagen hast, habe ich mal eine C# Anwendung geschrieben. Daten sind nun bereinigt! Hätte eben gedacht, dass es ganz einfach mit einer SQL abfrage gemacht gewesen wäre.
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!