Ich habe eine Tabelle "Nachrichten", die einen Zeitstempel und Ereignisse als Zeichenfolgen enthält. Ich möchte anzeigen, wie viele verschiedene Ereignisse in den letzten 30 Tagen aufgetreten sind.Wählen Sie mehrere Spalten für jedes Datum
So soll die Ausgabe wie:
date event_1 event_2
...
2017-08-01 4 0
2017-08-02 0 0
2017-08-03 5 3
2017-08-04 0 2
...
Wichtig ist, dass jeder Tag (auch, wenn kein Ereignis überhaupt auftreten) angezeigt werden.
Mein Code sieht so aus:
SELECT distinct(DATE(MESSAGE.DATEFIELD)) as 'date',
IF(MESSAGE.EVENT = 'event_1', COUNT(MESSAGE.ID), 0) AS 'event 1',
IF(MESSAGE.EVENT = 'event_2', COUNT(MESSAGE.ID), 0) AS 'event 2'
FROM MESSAGE
WHERE DATE(MESSAGE.DATEFIELD) >= DATE(NOW()) - INTERVAL 30 DAY
GROUP BY date, MESSAGE.EVENT
Dies funktioniert nicht. Es fügt mehrere Tage für jedes Ereignis hinzu. Kannst du mir meinen Fehler zeigen? Vielen Dank!
Funktioniert perfekt! Vielen Dank – user1482309