sql >> Databasteknik >  >> RDS >> Mysql

MySQL:fylla tomma fält med nollor när du använder GROUP BY

Skapa ytterligare en tabell med en enda kolumn,

CREATE TABLE hours_list (
    hour int NOT NULL PRIMARY KEY
)

Fyll den med alla 24 timmar.

Gör sedan en join på det bordet för att fylla i nollorna.

SELECT
    hs.hour as HOUR, COUNT(ws.ID) AS HOUR_STAT
FROM hours_list hs 
LEFT JOIN cms_webstat ws ON hs.hour = hour(ws.TIMESTAMP_X)
GROUP BY hs.hour
ORDER BY hs.hour DESC


  1. Infoga en lista<> i SQL Server-tabellen

  2. ta bort entiteter i kaskad som inte fungerar i ManyToMany-relationen

  3. EEE MMM dd HH:mm:ss ZZZ åååå datumformat till java.sql.Date

  4. MySQL SELECT WHERE I LIST och NOT I LIST i samma SQL