# Substract two datasets

**URL:** <https://community.influxdata.com/t/substract-two-datasets/27284>\
**Category:** InfluxDB 2\
**Tags:** flux\
**Created:** [November 7, 2022, 3:56pm UTC](https://community.influxdata.com/t/substract-two-datasets/27284 "2022-11-07T15:56:20Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![romanandreevich7](https://sea1.discourse-cdn.com/flex023/user_avatar/community.influxdata.com/romanandreevich7/32/11270_2.png) [@romanandreevich7](https://community.influxdata.com/u/romanandreevich7)\
**Post date:** [November 7, 2022, 3:56pm UTC](https://community.influxdata.com/t/substract-two-datasets/27284/1 "2022-11-07T15:56:20Z")

</div>

Hello everyone.

I have a request, that returns two data streams:

```auto
import "sampledata"
import "experimental"
import "experimental/aggregate"
        
        yesterday = from(bucket: "jmeter_night")
        |> range(start: experimental.subDuration(from: now(), d: 48h), stop: experimental.subDuration(from: now(), d: 24h))
        |> filter(fn: (r) => r["_measurement"] == "jmeter")
        |> filter(fn: (r) => r["application"] == "my application")
        |> filter(fn: (r) => r["_field"] == "pct95.0")
        |> filter(fn: (r) => r["transaction"] == "all")
        |> group(columns: ["transaction"])
        |> aggregateWindow(every: 10m, fn: mean)
        |> timeShift(duration: 24h, columns: ["_start", "_stop", "_time"])   

        today = from(bucket: "jmeter_night")
        |> range(start: experimental.subDuration(from: now(), d: 24h), stop: now())
        |> filter(fn: (r) => r["_measurement"] == "jmeter")
        |> filter(fn: (r) => r["application"] == "my application")
        |> filter(fn: (r) => r["_field"] == "pct95.0")
        |> filter(fn: (r) => r["transaction"] == "all") 
        |> group(columns: ["transaction"])     
        |> aggregateWindow(every: 10m, fn: mean)  

```

How can i get the difference between “today” and “yesterday”?  
I need to see values = today - yesterday.

---

<div class="post-metadata">

**Author:** ![scott](https://sea1.discourse-cdn.com/flex023/user_avatar/community.influxdata.com/scott/32/16492_2.png) [@scott](https://community.influxdata.com/u/scott)\
**Post date:** [November 7, 2022, 5:32pm UTC](https://community.influxdata.com/t/substract-two-datasets/27284/2 "2022-11-07T17:32:25Z")

</div>

@romanandreevich7 This should do it for you:

```javascript
yesterday =
    from(bucket: "jmeter_night")
        |> range(start: -48h, stop: -24h)
        |> filter(fn: (r) => r["_measurement"] == "jmeter")
        |> filter(fn: (r) => r["application"] == "my application")
        |> filter(fn: (r) => r["_field"] == "pct95.0")
        |> filter(fn: (r) => r["transaction"] == "all")
        |> aggregateWindow(every: 10m, fn: mean)
        |> timeShift(duration: 24h)
        |> set(key: "day", value: "yesterday")
        |> group(columns: ["_time", "_value"], mode: "except")

today =
    from(bucket: "jmeter_night")
        |> range(start: -24h)
        |> filter(fn: (r) => r["_measurement"] == "jmeter")
        |> filter(fn: (r) => r["application"] == "my application")
        |> filter(fn: (r) => r["_field"] == "pct95.0")
        |> filter(fn: (r) => r["transaction"] == "all")
        |> aggregateWindow(every: 10m, fn: mean)
        |> set(key: "day", value: "today")
        |> group(columns: ["_time", "_value"], mode: "except")

union(tables: [yesterday, today])
    |> pivot(rowKey: ["_time"], columnKey: ["day"], valueColumn: "_value")
    |> map(fn: (r) => ({r with _value: r.today - r.yesterday}))

```

---

<div class="post-metadata">

**Author:** ![romanandreevich7](https://sea1.discourse-cdn.com/flex023/user_avatar/community.influxdata.com/romanandreevich7/32/11270_2.png) [@romanandreevich7](https://community.influxdata.com/u/romanandreevich7)\
**Post date:** [November 7, 2022, 5:43pm UTC](https://community.influxdata.com/t/substract-two-datasets/27284/3 "2022-11-07T17:43:57Z")

</div>

Yes, it works pretty well.  
Thanks you a lot!
