我需要帮助根据工资类型和发薪期来计算每个雇员的工资百分比。
我有如下数据
ID date type gw
359 2015-03-28 R 1563.79
359 2015-04-04 M 11.41
359 2015-04-04 R 1563.79
359 2015-04-11 M 11.41
359 2015-04-11 R 1563.79
359 2015-04-18 M 11.41
795 2018-01-12 C 2382.39
795 2018-01-12 M 3.72
795 2018-01-12 R 3269.23
795 2018-01-26 C 1437.74
795 2018-01-26 M 3.72
795 2018-01-26 R 3269.23 当我运行以下查询时,结果如下所示
select id,date,type,gw,payPercentage=SUM(gw) * 100.0 / SUM(SUM(gw)) OVER ()
from pw_part
where id in ('359',795)
group by ssn,client_id,date,type,gwID date type gw payPercentage
359 2015-03-28 R 1563.79 0.133187
359 2015-04-04 M 11.41 0.000971
359 2015-04-04 R 1563.79 0.133187
359 2015-04-11 M 11.41 0.000971
359 2015-04-11 R 1563.79 0.133187
359 2015-04-18 M 11.41 0.000971
795 2018-01-12 C 2382.39 0.891623
795 2018-01-12 M 3.72 0.001392
795 2018-01-12 R 3269.23 1.223528
795 2018-01-26 C 1437.74 0.538082
795 2018-01-26 M 3.72 0.001392
795 2018-01-26 R 3269.23 1.223528我想要的结果应该是
ID date type gw payPercentage
359 2015-03-28 R 1563.79 100
359 2015-04-04 M 11.41 .72
359 2015-04-04 R 1563.79 99.27
359 2015-04-11 M 11.41 .72
359 2015-04-11 R 1563.79 99.27
359 2015-04-18 M 11.41 100
795 2018-01-12 C 2382.39 42.12
795 2018-01-12 M 3.72 .06
795 2018-01-12 R 3269.23 57.80
795 2018-01-26 C 1437.74 30.52
795 2018-01-26 M 3.72 .07
795 2018-01-26 R 3269.23 69.4 我怎样才能得到理想的结果?
请注意:我有数以百万计的ID和数百个日期,这里我提供了两个ID作为示例,以简化
谢谢
发布于 2021-05-14 21:38:51
我想你希望每天的金额加起来(大概每个id也是如此)。这将是:
select p.*,
gw * 100.0 / sum(gw) over (partition by id, date) as pay_percentage
from pw_part p;https://stackoverflow.com/questions/67541152
复制相似问题