Можете да използвате case
изрази, и двата наоколо изчислението и в рамките на прозореца sum
:
select
sales_date,
country,
sum(sales_volume),
case when country <> 'NL'
then sum(sum(fix_costs)) over(partition by year(sales_date), month(sales_date))
/ day(last_day(sales_date))
* sum(sales_volume)
/ sum(case when country <> 'NL' then sum(sales_volume) else 0 end) over(partition by sales_date)
else 0
end as fix_cost_per_day
from sales
group by 1,2;
<предварителна>дата_на_продажба | държава | сума(обем_продажби) | fix_cost_per_day:-------- | :------ | ----------------:| ---------------:2020-01-03 | DE | 500 | 37.950664142020-01-03 | FR | 350 | 26.565464902020-01-03 | NL | 320 | нула 30.01.2020 | Няма | 0 | нула 2020-02-15 | DE | 700 | 137.147335422020-02-15 | FR | 180 | 35.266457682020-02-15 | NL | 420 | нула 29.02.2020 | Няма | 0 | нула 2020-03-27 | DE | 180 | 20.196353442020-03-27 | FR | 970 | 108.835904632020-03-27 | NL | 670 | нула 31.03.2020 | Няма | 0 | нула