Sie können generate_series()
verwenden um die komplizierte CTE- und Datumsarithmetik zu vermeiden. Hier ist ein Beispiel für den Einstieg:
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
Sie sollten im zweiten Semester einen Fall hinzufügen, um 2017 alles zu entfernen, und es könnte umgeschrieben werden, um jeweils eine Woche zu wiederholen, aber es sollte Sie auf den richtigen Weg bringen.