Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Group rows by 7 days interval starting from a certain date

Tags:

php

mysql

Is there a way to group rows by a 7 days intervals(datetime) starting from a certain date in Mysql?

like image 530
flaviu Avatar asked Nov 04 '25 22:11

flaviu


2 Answers

SELECT 
    1 + DATEDIFF(columnDate, @start_date) DIV 7  AS weekNumber
  , @start_date + INTERVAL (DATEDIFF(columnDate, @start_date) DIV 7) WEEK
      AS week_start_date
  , MIN(columnDate) AS actual_first_date
  , MAX(columnDate) AS actual_last_date
  , SUM(otherColumn)
  , AVG(otherColumn)
  --- 
FROM 
    tableX 
WHERE 
    columnDate >= @start_date 
GROUP BY
    DATEDIFF(columnDate, @start_date) DIV 7 ;
like image 106
ypercubeᵀᴹ Avatar answered Nov 07 '25 14:11

ypercubeᵀᴹ


SELECT *
FROM  `table` 
GROUP BY WEEK( ADDDATE( `date_column` , WEEKDAY(NOW()) ) ) 
like image 38
mychalvlcek Avatar answered Nov 07 '25 15:11

mychalvlcek