I have a measurement in which I collect the daily percentage uptime of different systems in our environment.

name: system_uptime_daily

time host percentage_uptime

1598023678615478128 A 0.034722222222222224

1598023678615478128 B 0.034722222222222224

1598110078615484392 A 0.011574074074074073

1598110078615484392 B 0.011574074074074073

1598227200000000000 A 44.513888888888886

1598227200000000000 B 48.47222222222222

1598227200000000000 C 0.2777777777777778

1598313600000000000 A 53.47222222222222

1598313600000000000 B 53.47222222222222

1598400000000000000 A 52.77777777777778

1598400000000000000 B 52.77777777777778

System may get removed some times. So the daily average will be missing for those days.

Now, I want calculate the average system uptime for our environment over a time period.

For this purpose I want to calculate the weighted average of the system uptime across each host.

In the sample data pasted above, I need to calculate the sum of

SUM(SUM(percentage_uptime for a host) / Count(percentage_uptime of all host))

I’m not sure how to convert above statement into an Influx Query.

Using below query

```
SELECT * FROM(
SELECT sum("percentage_uptime") as cumulative_uptime FROM "one_year"."system_uptime_daily" WHERE $timeFilter GROUP BY host fill(0)
), (
SELECT count("percentage_uptime") as uptime_days FROM "one_year"."system_uptime_daily" WHERE $timeFilter
)
```

I’ll get the sum of percentage_uptime for each host and total count of precentage uptime.

How can didvide the cumulative_uptime by uptime days to get average uptime of a host and sum it?

P.S. I’m using InfluxDB 1.7.x