sql >> Databáze >  >> RDS >> Mysql

Skupina po týdnu, jak získat prázdné týdny?

SQL nemůže vrátit řádky, které v nějaké tabulce neexistují. Abyste dosáhli požadovaného efektu, budete potřebovat tabulku Weeks (WeekNo INT) s jedním řádkem na jeden možný týden v roce (což, IIRC, je buď 53 nebo 54 možných týdnů, podle toho, jak počítáte).

Potom PŘIPOJTE tuto tabulku ke svým pravidelným výsledkům pomocí OUTER JOIN, abyste získali další týdny navíc.

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

[Aktualizovat]:Všimněte si uživatele COUNT(datum), nikoli COUNT(*). SQL nezahrne hodnoty NULL do sloupce data při sčítání COUNT. Vzhledem k tomu, že chybějící týdny nebudou obsahovat žádná data, získáte pro tyto týdny správně 0 událostí.



  1. MySQL VARCHAR Lengths a UTF-8

  2. Odečtěte měsíce od data v PostgreSQL

  3. Jak zkontrolovat verzi MySQL

  4. Jak převést DateTime na číslo v MySQL?