Du kan bruge generate_series()
for at undgå den indviklede CTE og dato-aritmetik. Her er et eksempel for at komme i gang:
select d, d + interval '6 days'
from generate_series('2016-01-01'::date, '2016-12-31'::date, '1 day'::interval) d
where date_trunc('week', d) = d
Du vil gerne tilføje en sag i anden periode for at fjerne alt i 2017, og den kunne omskrives til et trin en uge ad gangen, men det burde få dig på rette vej.