Ich habe ein Problem mit einer MySQL-Abfrage, die Daten in meiner Tabelle nach Wochentag gruppiert.Mysql-Gruppe nach Wochentag, füllen Sie fehlende Wochentage
Ich brauche es um wochentags zu füllen, dass ein in den Daten fehlt, zum Beispiel Sonntag (Wochentag 7) im SQL-Beispiel unten.
MySQL 5.6 Schema Einrichtung:
create table test (
`id` INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
`date` DATETIME
);
INSERT INTO test (`date`) VALUES
('2016-05-16 00:00:00'),
('2016-05-17 00:00:00'),
('2016-05-18 00:00:00'),
('2016-05-20 00:00:00'),
('2016-05-21 00:00:00'),
('2016-05-22 00:00:00'),
('2016-05-16 00:00:00'),
('2016-05-17 00:00:00'),
('2016-05-18 00:00:00'),
('2016-05-20 00:00:00');
Abfrage 1:
SELECT WEEKDAY(date) AS weekday,
COUNT(id) AS posts
FROM test
GROUP BY WEEKDAY(date)
| weekday | posts |
|---------|-------|
| 0 | 2 |
| 1 | 2 |
| 2 | 2 |
| 4 | 2 |
| 5 | 1 |
| 6 | 1 |
Ich erwarte, dass es diese Linie auch zurückgibt.
Meine komplette Abfrage ich ziemlich komplex, so hoffe ich, dass Sie eine schnelle Lösung dafür finden.
Sie für diesen Tag keine Daten haben. Daher gibt es keine Zeile zurück, wenn keine Daten zurückgegeben werden. –
Ich glaube, du verpasst etwas ... Wenn du "Wochentag" ** 0 ** bekommst, kannst du nicht "Wochentag" bekommen ** 7 * * (zumindest nicht auf diesem Planeten). – FDavidov
Ich denke, Sie erwarten 'Weekday = 3 Posts = 0' in den Ergebnissen. –