Formula to get percent complete

Hi. I have data with Plants and Tasks and whether the tasks are complete are not. I need a formula so I can have a percent completed for each plant based on the number of Yes tasks they have compared to total tasks. Then I need to group by plant and bring that percent into a table.

Could someone help with this? The completion percent column is what I am trying to calculate. Will need a formula to calculate in Magic ETL then group by at plant level and bring in one row per plant with percent complete.

Thanks

Date

Plant

Task

Task Complete

Completion Percent

4/18/2024

Plant A

Task 1

Yes

75%

4/18/2024

Plant A

Task 2

Yes

75%

4/18/2024

Plant A

Task 3

Yes

75%

4/18/2024

Plant A

Task 4

No

75%

4/18/2024

Plant B

Task 1

No

25%

4/18/2024

Plant B

Task 2

No

25%

4/18/2024

Plant B

Task 3

No

25%

4/18/2024

Plant B

Task 4

Yes

25%

4/18/2024

Plant C

Task 1

Yes

50%

4/18/2024

Plant C

Task 2

Yes

50%

4/18/2024

Plant C

Task 3

No

50%

4/18/2024

Plant C

Task 4

No

50%

Tagged:

Best Answer

  • GrantSmith
    GrantSmith Coach
    Answer ✓

    You can leverage window functions to do this:

    SUM(SUM(CASE WHEN `Task Complete` = 'Yes' THEN 1 ELSE 0 END)) OVER (PARTITION BY `Plant`, `Date`)
    /
    SUM(SUM(1)) OVER (PARTITION BY `Plant`, `Date`)
    

    This will conditionall return 1 or 0 if the task is complete or not and then sum that value up for all tasks for each date and plant.

    Then it's divided by the total number of records for each plant + date combination

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**

Answers

  • GrantSmith
    GrantSmith Coach
    Answer ✓

    You can leverage window functions to do this:

    SUM(SUM(CASE WHEN `Task Complete` = 'Yes' THEN 1 ELSE 0 END)) OVER (PARTITION BY `Plant`, `Date`)
    /
    SUM(SUM(1)) OVER (PARTITION BY `Plant`, `Date`)
    

    This will conditionall return 1 or 0 if the task is complete or not and then sum that value up for all tasks for each date and plant.

    Then it's divided by the total number of records for each plant + date combination

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**
  • That worked! Thanks!