MySQL Forums
Forum List  »  German

Benötige Hilfe bei Erstellung einer Query
Posted by: Gaius Marius
Date: November 16, 2020 04:20AM

Hallo allerseits,
als leider nur rudimentär Wissender benötige ich Hilfe bei der Erstellung einer Query. Falls mein Anliegen längst beantwortet wurde, bitte ich um Nachsicht, da ich nicht einmal weiß, nach was ich in einer Forumsuche suchen soll.

Gegeben ist ein Ausschnitt aus einer Tabelle:
+---------------------+-------------+-------+------------------------------------+----------------------------+--------+------+
| TIMESTAMP           | DEVICE      | TYPE  | EVENT                              | READING                    | VALUE  | UNIT |
+---------------------+-------------+-------+------------------------------------+----------------------------+--------+------+
| 2020-11-13 19:26:02 | DatabaseLog | DBLOG | CacheUsage: 2                      | CacheUsage                 | 2      |      |
| 2020-11-13 19:26:02 | DatabaseLog | DBLOG | background_processing_time: 0.0152 | background_processing_time | 0.0152 |      |
| 2020-11-13 19:26:02 | DatabaseLog | DBLOG | sql_processing_time: 0.0042        | sql_processing_time        | 0.0042 |      |
| 2020-11-13 19:26:02 | DbLog       | DBLOG | CacheUsage: 145                    | CacheUsage                 | 145    |      |
+---------------------+-------------+-------+------------------------------------+----------------------------+--------+------+

Es sollen alle Zeilen gelöscht werden
    ● in denen das Attribut `DEVICE` den Wert „DatabaseLog“ hat
    und es eine andere Zeile gibt, in der
      ○ das Attribut `DEVICE` den Wert „DbLog“ hat
      und das Attribut `TIMESTAMP` denselben Wert wie in der zu löschenden Zeile hat
      und das Attribut `READING` denselben Wert wie in der zu löschenden Zeile hat.
Hier in dem Beispiel soll genau (und nur) die erste Zeile gelöscht werden.
Es gibt (außer in den Daten in der DB) keine Liste der betroffenen `READING`. Sie muss ggf. zur Laufzeit angelegt werden.

Fachlich falsch gelaufen ist, dass zu ein und demselben Zeitpunkt `TIMESTAMP` zwei `DEVICE` dasselbe `READING` in die DB geschrieben haben. Dabei ist das `DEVICE` „DatabaseLog“ das fehlerhafte und soll daher entfernt werden. Haben die `DEVICE` „DatabaseLog“ und „DbLog“ allerdings zum selben Zeitpunkt verschiedene `READING` geschrieben, sollen diese verschiedenen erhalten bleiben.

Anmerkung:
    ● Es gibt noch diverse andere `DEVICE` mit diversen anderen Namen; diese sind aber nicht betroffen.
    ● Es gibt noch diverse andere `READING` sowohl bei den diversen anderen `DEVICE` als auch bei den betroffenen `DEVICE` „DatabaseLog“ und „DbLog“. „CacheUsage“, „background_processing_time“ und „sql_processing_time“ sind zwar reale Werte, aber letztendlich nur Beispiele für andere mögliche…

Vielen Dank fürs Lesen, noch mehr würde ich mich natürlich über eine Antwort freuen! :-)
Marius

Options: ReplyQuote


Subject
Views
Written By
Posted
Benötige Hilfe bei Erstellung einer Query
629
November 16, 2020 04:20AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.