add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE sales (
id int auto_increment primary key,
country VARCHAR(255),
sales_date DATE,
sales_volume INT,
fix_costs INT
);

INSERT INTO sales
(country, sales_date, sales_volume, fix_costs
)
VALUES

("DE", "2020-01-03", "500", "0"),
("NL", "2020-01-03", "320", "0"),
("FR", "2020-01-03", "350", "0"),
("None", "2020-01-30", "0", "2000"),

("DE", "2020-02-15", "700", "0"),
("NL", "2020-02-15", "420", "0"),
("FR", "2020-02-15", "180", "0"),
("None", "2020-02-29", "0", "5000"),

("DE", "2020-03-27", "180", "0"),
("NL", "2020-03-27", "670", "0"),
("FR", "2020-03-27", "970", "0"),
("None", "2020-03-31", "0", "4000");
select
sales_date,
country,
sum(sales_volume),
sum(sum(fix_costs)) over(partition by year(sales_date), month(sales_date))
/ day(last_day(sales_date))
as fix_cost_per_day
from sales
group by 1,2;

sales_date country sum(sales_volume) fix_cost_per_day
2020-01-03 DE 500 64.5161
2020-01-03 FR 350 64.5161
2020-01-03 NL 320 64.5161
2020-01-30 None 0 64.5161
2020-02-15 DE 700 172.4138
2020-02-15 FR 180 172.4138
2020-02-15 NL 420 172.4138
2020-02-29 None 0 172.4138
2020-03-27 DE 180 129.0323
2020-03-27 FR 970 129.0323
2020-03-27 NL 670 129.0323
2020-03-31 None 0 129.0323
select
sales_date,
country,
sum(sales_volume),
sum(sum(fix_costs)) over(partition by year(sales_date), month(sales_date))
/ day(last_day(sales_date))
* sum(sales_volume)
/ sum(sum(sales_volume)) over(partition by sales_date)
as fix_cost_per_day
from sales
group by 1,2;
sales_date country sum(sales_volume) fix_cost_per_day
2020-01-03 DE 500 27.57099531
2020-01-03 FR 350 19.29969672
2020-01-03 NL 320 17.64543700
2020-01-30 None 0 null
2020-02-15 DE 700 92.83819629
2020-02-15 FR 180 23.87267905
2020-02-15 NL 420 55.70291777
2020-02-29 None 0 null
2020-03-27 DE 180 12.76143212
2020-03-27 FR 970 68.76993974
2020-03-27 NL 670 47.50088621
2020-03-31 None 0 null