Mam tabeli MySQLMySQL: wypełnienie pustych pól z zer przy użyciu GROUP BY
CREATE TABLE cms_webstat (
ID int NOT NULL auto_increment PRIMARY KEY,
TIMESTAMP_X timestamp DEFAULT CURRENT_TIMESTAMP,
# ... some other fields ...
)
która zawiera statystyki dotyczące odwiedzających witrynę.
Uzyskania razy na godzinę używam
SELECT
hour(TIMESTAMP_X) as HOUR
, count(*) AS HOUR_STAT
FROM cms_webstat
GROUP BY HOUR
ORDER BY HOUR DESC
który daje mi
| HOUR | HOUR_STAT |
| 24 | 15 |
| 23 | 12 |
| 22 | 9 |
| 20 | 3 |
| 18 | 2 |
| 15 | 1 |
| 12 | 3 |
| 9 | 1 |
| 3 | 5 |
| 2 | 7 |
| 1 | 9 |
| 0 | 12 |
I chciałbym, aby uzyskać następujące:
| HOUR | HOUR_STAT |
| 24 | 15 |
| 23 | 12 |
| 22 | 9 |
| 21 | 0 |
| 20 | 3 |
| 19 | 0 |
| 18 | 2 |
| 17 | 0 |
| 16 | 0 |
| 15 | 1 |
| 14 | 0 |
| 13 | 0 |
| 12 | 3 |
| 11 | 0 |
| 10 | 0 |
| 9 | 1 |
| 8 | 0 |
| 7 | 0 |
| 6 | 0 |
| 5 | 0 |
| 4 | 0 |
| 3 | 5 |
| 2 | 7 |
| 1 | 9 |
| 0 | 12 |
Jak należy zmodyfikować kwerendę, aby uzyskać taki wynik (z jednym zapytaniem mysql, bez tworzenia tabel tymczasowych)?
Czy można uzyskać taki wynik za pomocą jednego zapytania MySQL?
SaltLake, myślisz, że zaakceptujesz odpowiedź? –
Marcus, twoje rozwiązanie działa, ale nie w taki sposób, jak chcę. Jestem zainteresowany rozwiązaniem z jedną kwerendą SQL i bez tworzenia i wypełniania innych tabel. – SaltLake