Be left with only one table after making a union()

Hello ! I have this Flux script:

cpu_usage = from(bucket: "monitoring")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "cpu")
  |> filter(fn: (r) => r["_field"] == "usage_idle")
  |> filter(fn: (r) => r["cpu"] == "cpu-total")
  |> group(columns: ["host"])
  |> last()
  |> map(fn:(r) => ({ _value: 100.0 - r._value,}))    
  |> filter(fn: (r) => r["_value"] > 0)
  |> group()
  |> count()
  |> yield(name: "cpu_usage")  

mem_usage = from(bucket: "monitoring")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "mem")
  |> filter(fn: (r) => r["_field"] == "used_percent")
  |> group(columns: ["host"])
  |> last()
  |> filter(fn: (r) => r["_value"] > 0)
  |> group()
  |> count()
  |> yield(name: "mem_usage")

disk_usage = from(bucket: "monitoring")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "disk")
  |> filter(fn: (r) => r["_field"] == "used_percent")
  |> filter(fn: (r) => r["path"] == "/")  
  |> group(columns: ["host"])      
  |> last()
  |> filter(fn: (r) => r["_value"] > 0)
  |> group()
  |> count()
  |> yield(name: "disk_usage") 

union(tables: [cpu_usage, mem_usage, disk_usage])
  |> sum()

What I do is 3 different counts and the one with union() to add them.

What I want is that it only returns the sum of the union() function that has a value of 3. To show it in a Singlestat panel. And drop the other three tables from each count.

Thanks !

@delapuentem
To get rid of the cpu_usage, mem_usage, and disk_usage tables and only return the sum (after the union function), you would remove the three yield() functions. The complete Flux query would look like this:

cpu_usage = from(bucket: "monitoring")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "cpu")
  |> filter(fn: (r) => r["_field"] == "usage_idle")
  |> filter(fn: (r) => r["cpu"] == "cpu-total")
  |> group(columns: ["host"])
  |> last()
  |> map(fn:(r) => ({ _value: 100.0 - r._value,}))    
  |> filter(fn: (r) => r["_value"] > 0)
  |> group()
  |> count()

mem_usage = from(bucket: "monitoring")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "mem")
  |> filter(fn: (r) => r["_field"] == "used_percent")
  |> group(columns: ["host"])
  |> last()
  |> filter(fn: (r) => r["_value"] > 0)
  |> group()
  |> count()

disk_usage = from(bucket: "monitoring")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "disk")
  |> filter(fn: (r) => r["_field"] == "used_percent")
  |> filter(fn: (r) => r["path"] == "/")  
  |> group(columns: ["host"])      
  |> last()
  |> filter(fn: (r) => r["_value"] > 0)
  |> group()
  |> count()

union(tables: [cpu_usage, mem_usage, disk_usage])
  |> sum()