Mysql
 sql >> Base de données >  >> RDS >> Mysql

Groupe MySQL par numéro de semaine avec plusieurs colonnes de date

essayez :

SELECT weekofyear(forcast_date) AS week_forcast,
   COUNT(forcast_date) AS count_forcast, t2.count_actual
FROM
   t t1 LEFT JOIN (
SELECT weekofyear(actual_date) AS week_actual,
   COUNT(forcast_date) AS count_actual
FROM t
GROUP BY weekOfYear(actual_date)
) AS t2 ON weekofyear(forcast_date)=week_actual
GROUP BY
weekofyear(forcast_date), t2.count_actual

sqlFiddle

Vous devez écrire environ 30 jointures gauches (vos colonnes de date), et l'exigence est que votre première colonne de date devrait avoir une semaine vide (avec un nombre de 0) ou les jointures manqueront.