I did a quick mock-up of your data and this query works to calculate the difference between “oil_heating_temp_return_flow_3” and “oil_heating_temp_supply_flow_3”
from(bucket: "homeassistant/autogen")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "°C")
|> filter(fn: (r) => r["_field"] == "value")
|> filter(fn: (r) => r["domain"] == "sensor")
|> filter(fn: (r) => r["entity_id"] == "oil_heating_temp_return_flow_3" or r["entity_id"] == "oil_heating_temp_supply_flow_3")
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|> pivot(rowKey:["_time"], columnKey: ["entity_id"], valueColumn: "_value")
|> map(fn: (r) => ({ r with difference: (r.oil_heating_temp_supply_flow_3 - r.oil_heating_temp_return_flow_3)}))
|> yield(name: "test")