Ludwigmller
SQL-Guru
- Beiträge
- 172
Hallo,
Eine
Nun möchte ich eine kumulierte Fläche berechnen, die t.flaeche summiert, allerdings nur einmal je flaechen_id und saison. Außerdem müssen mindestens 10 Arbeitsstunden für die flaechen_id und saison bis zu dem jeweiligen Datum kumuliert vorhanden sein .
Bsp.:
Wie mache ich das am besten?
Eine
View v
gibt pro datum
, flaechen_id
und art
jeweils Arbeitsstunden aus. Außerdem die zugehörige saison
, da diese nicht mit den Jahresgrenzen übereinstimmt. Mit einer Window-Function ermittel ich die kumulierten Arbeitstunden je Saison.
Code:
SELECT
datum,
saison,
art,
SUM(t.stunden) oVER (PARTITION BY saison ORDER BY datum) AS kumuliert_ges
FROM
view1 as v
GROUP BY saison, art, t.stunden, t.datum, t.flaechen_id, t.flaeche
order by datum
Bsp.:
datum | saison | flaechen_id | flaeche | stunden | kumuliert_ges | kum_flaeche |
20.12.2021 | 2022 | 1 | 1 | 8 | 8 | 0 |
21.12.2021 | 2022 | 2 | 2.5 | 2 | 10 | 2.5 |
21.12.2021 | 2022 | 1 | 1 | 1 | 11 | 2.5 |
02.01.2022 | 2022 | 1 | 1 | 2 | 13 | 3.5 |
02.01.2022 | 2022 | 2 | 2.5 | 1 | 14 | 3.5 |
03.01.2023 | 2023 | 1 | 1 | 5 | 5 | 0 |
03.01.2023 | 2023 | 2 | 2.5 | 5 | 10 | 0 |
04.01.2023 | 2023 | 2 | 2.5 | 10 | 20 | 2.5 |