sql >> Database >  >> RDS >> Mysql

Groep per week, hoe krijg je lege weken?

SQL kan geen rijen retourneren die niet in een tabel voorkomen. Om het gewenste effect te krijgen, heb je een tabel Weken (WeekNo INT) nodig met één rij per mogelijke week van het jaar (wat, IIRC, 53 of 54 mogelijke weken is, afhankelijk van hoe je telt).

Voeg vervolgens deze tabel toe aan uw reguliere resultaten met een OUTER JOIN om de extra weken toe te voegen.

SELECT DATE_FORMAT(date, 'Y:%X - Week:%V') AS regweek, COUNT(date) as number 
    FROM YourTable RIGHT OUTER JOIN Weeks ON WEEK(YourTable.date) = Weeks.WeekNo

[Update]:Let op de gebruiker van COUNT(date) in plaats van COUNT(*). SQL zal geen NULL-waarden in de datumkolom opnemen bij het optellen van de COUNT. Aangezien de ontbrekende weken geen datums bevatten, geeft dit u correct 0 evenementen voor die weken.



  1. Clob regel voor regel lezen met pl\sql

  2. Een PostgreSQL-reeks naar een veld maken (wat niet de ID van de record is)

  3. Hoe test je op welke poort MySQL draait en of er verbinding mee kan worden gemaakt?

  4. Hoge beschikbaarheid van PostgreSQL met master-slave- en master-masterarchitecturen