CREATE TABLE person (
id int,
cat varchar(255),
salary varchar(255),
to_date date
);
INSERT INTO person VALUES (1, "A", 888, '2021-06-01');
INSERT INTO person VALUES (2, 'B', 666, '2021-06-01');
INSERT INTO person VALUES (1, "C", 333, '2021-06-02');
INSERT INTO person VALUES (2, 'D', 222, '2021-06-01');
INSERT INTO person VALUES (1, "A", 555, '2021-06-03');
INSERT INTO person VALUES (2, 'B', 666, '2021-06-04');
select gender,class_id,sum(salary)/(select SUM(salary) over (partition by to_date) from person)
from
person
group by cat,to_date
order by cat