Вы можете использовать внутреннее соединение в подзапросе для min и max по weekId
select m.WeekId, m.calendarDate, concat(t.min_date, ' - ' , t.max_date )
from my_table m
inner join (
select weekId
, min(calendarDate) min_date
, max(calendarDate) max_date
from my_table
group by weekId
) t on t.weekId = m.weekId
после того, как вы изменили таблицу, добавив столбцы weekRange (как varchar) ..
Вы можете использовать обновление
update my_table m1
inner join (
select weekId
, min(calendarDate) min_date
, max(calendarDate) max_date
from my_table
group by weekId
) t on t.weekId = m1.weekId
set m1.weekRange = concat(t.min_date, ' - ' , t.max_date )
и для формата даты как в вашем комментарии
обновить my_table m1
внутреннее соединение (
select weekId
, min(calendarDate) min_date
, max(calendarDate) max_date
from my_table
group by weekId
) t on t.weekId = m1.weekId
set m1.weekRange = concat(date_forma(t.min_date, '%m/%d/%Y'),
' - ' , date_forma(t.max_date, '%m-%d-%Y') )