我有一个包含位置及其整数分配的sql表。随着总体分配的增加,基础分配需要按比例增加,同时抵消任何舍入误差。
我试过的是:
new_distribution=new_alloc-ROUND(NVL(SUM(original distribution) OVER (PARTITION BY location rows between unbounded preceding and 1 PRECEDING),0)*(new_alloc/original alloc),0) as num
不过,总数与40人不符。如何在sql/redshift/oracle中实现这一点,使新发行版接近原始发行版,而总数达到40?
1条答案
按热度按时间csga3l581#
您可以通过截断值来分配值,然后将剩余的值分配给某些行。这看起来像: