The way that I have always done these calculations is to use a summarize tool and append the value on to each row of the original data with a formula tool after to perform the calculation as you mentioned
The reason for this is that although Alteryx operates on entire columns at one time, the functions operate on each row of data. Technically you could do this with a running total, a sort from largest to smallest on the running total, a subsequent multi row tool that sets every value to the row above it effectively making each value of the column the same as the sum of the other column. This requires more tools, however, and isn’t as efficient.