ist eine Teilfrage auf der Grundlage einer vorherigen Frage:Gruppe von isoweek - Das postgresql
Split values from an interval and group by isoweek - Postgresql
Die Frage ist, wie man Gruppe dies durch isoweek
CREATE TABLE task
(id int4, start date, stop date, hr int4);
INSERT INTO task
(id, start, stop, hr)
VALUES
(1, '2017-01-01','2017-01-31', 80),
(2, '2017-01-01','2017-02-28', 120);
Basierend auf Patricks Antwort, die ich diese gefunden Lösung:
SELECT id,to_char(iso, 'iyyy-iw'),(hr/weeks)::numeric (5,2) as hr_week
FROM (SELECT id,hr,generate_series(start,stop,interval '1 week') as iso,
(stop - start)/7 as weeks FROM task) as sub
http://sqlfiddle.com/#!15/93ee1/78
Der nächste Schritt ist die „Gruppe die Gruppen“ wie folgt aus:
2016-52 35
2017-01 35
2017-02 35
2017-03 35
2017-04 35
2017-05 15
2017-06 15
2017-07 15
2017-08 15
Ich kann nicht herausfinden, wie dies zu tun. Jede Hilfe wird geschätzt.
TIA,
Ich hoffe, dass dies auch leer Wochen decken. Vielen Dank! – sibert