Ich versuche Zeilen nach einem Zeitstempel für jeden Kunden zu löschen, die Wert 1 in MySQL haben. Beispieltabelle:MySQL löschen Zeilen basierend auf Wert und nach einem Zeitstempel für jeden Kunden
id | timestamp | cust_ID | value 899900 | 2016-04-11 12:00:00 | 500219 | 0 899901 | 2016-04-12 16:00:00 | 500219 | 0 899902 | 2016-04-14 11:00:00 | 500219 | 1 899903 | 2016-04-15 12:00:00 | 500219 | 1 899904 | 2016-04-23 09:00:00 | 500219 | 0 899905 | 2016-05-02 19:00:00 | 500219 | 0 909901 | 2016-04-12 16:00:00 | 500230 | 0 909902 | 2016-04-14 11:00:00 | 500230 | 1 909903 | 2016-04-15 12:00:00 | 500230 | 1 909904 | 2016-04-23 09:00:00 | 500230 | 0 909905 | 2016-05-02 19:00:00 | 500230 | 0 939905 | 2016-05-02 19:00:00 | 500240 | 0
Der Versuch, zu erreichen:
id | timestamp | cust_ID | value 899900 | 2016-04-11 12:00:00 | 500219 | 0 899901 | 2016-04-12 16:00:00 | 500219 | 0 899902 | 2016-04-14 11:00:00 | 500219 | 1 899903 | 2016-04-15 12:00:00 | 500219 | 1 909901 | 2016-04-12 16:00:00 | 500230 | 0 909902 | 2016-04-14 11:00:00 | 500230 | 1 909903 | 2016-04-15 12:00:00 | 500230 | 1 939905 | 2016-05-02 19:00:00 | 500240 | 0
I Bisher haben die folgenden, die Fehler 1242 wirft 'Unterabfrage gibt mehr als eine Zeile':
CREATE VIEW
max_id
AS SELECT id
, cust_ID
, MAX (timestamp
) VON table
WHERE value
= 1 GROUP BY cust_ID
; LÖSCHEN VON max_id
WHERE id
> (SELECT id
VON max_id
GROUP BY cust_ID
);
Jede Hilfe würde sehr geschätzt werden!
Vielen Dank für Ihre Antwort. Dies hält jedoch nur eine Zeile pro cust_id. Jede Hilfe wäre willkommen. –
Es funktioniert jetzt, habe ich den tt.timestamp> t.timestamp geschaltet. Vielen Dank! –