sql >> Database teknologi >  >> RDS >> Mysql

Gruppe for uge, hvordan får man tomme uger?

SQL kan ikke returnere rækker, der ikke findes i nogle tabeller. For at få den effekt, du ønsker, skal du bruge en tabel Weeks (WeekNo INT) med en række pr. mulig uge i året (hvilket, IIRC, er enten 53 eller 54 mulige uger, afhængigt af hvordan du tæller).

Tilmeld dig derefter denne tabel til dine almindelige resultater med en YDRE JOIN for at få de ekstra uger tilføjet.

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

[Opdatering]:Bemærk brugeren af ​​COUNT(dato) i stedet for COUNT(*). SQL vil ikke inkludere NULL-værdier i datokolonnen, når COUNT lægges sammen. Da de manglende uger ikke vil have nogen datoer, vil dette korrekt give dig 0 begivenheder for disse uger.



  1. Hvordan får man en rækkerangering?

  2. NANVL() Funktion i Oracle

  3. Sådan beregnes en absolut værdi i SQL

  4. Postgres UUID JDBC virker ikke