# Query the postive change per day

**URL:** https://community.influxdata.com/t/query-the-postive-change-per-day/4365
**Category:** Telegraf
**Tags:** influxdb
**Created:** [March 14, 2018, 1:41pm UTC](https://community.influxdata.com/t/query-the-postive-change-per-day/4365 "2018-03-14T13:41:12Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![confususs](https://sea1.discourse-cdn.com/flex023/user_avatar/community.influxdata.com/confususs/32/1110_2.png) [@confususs](https://community.influxdata.com/u/confususs)
#### Post date: [March 14, 2018, 1:41pm UTC](https://community.influxdata.com/t/query-the-postive-change-per-day/4365/1 "2018-03-14T13:41:12Z")

</div>

Hi there.

I want to determine the postive (value) change per day.

I’m tracking the output of a counter in a pulse sensor. Sometimes the counter resets, which messes up my queries when I group by day. I’ll show you what I’ve tried.

Let’s say I have the following data:

```
> select value from "autogen"."pulsesensor"
name: pulsesensor
time value
---- -----
1520679600000000000 50001
1520697600000000000 50002
1520715600000000000 50003
1520733600000000000 50004
1520751600000000000 50005
1520769600000000000 50006
1520787600000000000 50007
1520805600000000000 50008
1520823600000000000 50009
1520841600000000000 50010
1520859600000000000 1
1520877600000000000 2
1520895600000000000 3

day 1 = [50001, 50002, 50003]
day 2 = [50004, 50005, 50006, 50007, 50008]
day 3 = [50009, 50010, 1, 2]
day 4 = [3]

```

The counter resets on day 3, and starts counting from 1.

The following query works for day 1, 2 and 4:

`> select spread(value) as value from "autogen"."pulsesensor" group by time(1d) ;`

```
name: pulsesensor
time value
---- -----
1520640000000000000 2 # day 1
1520726400000000000 4 # day 2
1520812800000000000 50009 # day 3
1520899200000000000 3 # day 4

```

**Day 3 gives the correct result for a spread function, but I actually want 2 as a result.**

I cannot use derivative in combination with group by because then I have to use a nested InfluxQL function, which in turn loses accuracy. Especially on day 3.

I could do something like this:

```
> select "x" from (select last(value) - first(value) as "x" from "autogen"."pulsesensor" group by time(1d)) where "x" > 0
name: pulsesensor
time x
---- ----
1520640000000000000 2 # day 1
1520726400000000000 4 # day 2
1520899200000000000 3 # day 4

```

but then I lose day 3.

Now I found cumulative sum, which almost does what I want.

```
> select cumulative_sum(last(value)) as "x" from "autogen"."pulsesensor" group by time(1d)
name: pulsesensor
time x
---- ----
1520640000000000000 50003 # day 1
1520726400000000000 100011 # day 2
1520812800000000000 100014 # day 3
1520899200000000000 100021 # day 4
1520985600000000000 100029 # ?

```

If I had simply reset the counter to 0 every time I inserted a new value in the database, it would have worked perfectly. Unfortunately my sensor has no idea of when its values are extracted, so I cannot alter how it functions.

Does anyone know how I could query my data to get the positive value change per day?

TL;DR. I need a query to get the positive value change per day

---

<div class="post-metadata">

### Author: ![confususs](https://sea1.discourse-cdn.com/flex023/user_avatar/community.influxdata.com/confususs/32/1110_2.png) [@confususs](https://community.influxdata.com/u/confususs)
#### Post date: [March 22, 2018, 10:05am UTC](https://community.influxdata.com/t/query-the-postive-change-per-day/4365/2 "2018-03-22T10:05:06Z")

</div>

I found a solution/workaround [here](https://community.influxdata.com/t/outer-group-by-without-aggregation-in-subquery/4474).
