fastxl
1
Using this query from this post

Difference Between 2 values in a query?

```
import "math"
First = from(bucket: "LB3000")
|> range(start: today())
|> filter(fn: (r) => r["deviceId"] == "Okuma-LB3000")
|> filter(fn: (r) => r["dataItemId"] == "Lppartcount")
|> toInt()
|> first()
Last = from(bucket: "LB3000")
|> range(start: today())
|> filter(fn: (r) => r["deviceId"] == "Okuma-LB3000")
|> filter(fn: (r) => r["dataItemId"] == "Lppartcount")
|> toInt()
|> last()
union(tables: [First, Last])
|> difference()
```

I get a negative number as a result. I am expecting a positive number. When I try the suggested

```
|> map(fn: (r) => ({r with _value: math.abs(x: r._value)}))
```

I get a runtime error

` runtime error @19:4-19:60: map: type conflict: float != int`

Any suggestions? @grant1 ?

scott
2
@fastxl `math.abs`

only accepts float values. You need to cast your value to a float and then back to an integer. Try the following:

```
|> map(fn: (r) => ({r with _value: int(v: math.abs(x: float(v: r._value)))}))
```

1 Like

grant1
3
Thanks @scott and very clear as always.

I was about to suggest trying to reverse the two lines in the First and Last queries, like this:

OLD:

```
|> toInt()
|> first()
```

NEW:

```
|> first()
|> toInt()
```

and then see if the original map function would work…

`|> map(fn: (r) => ({r with _value: math.abs(x: r._value)}))`

1 Like

fastxl
4
@scott Thanks for the help. I’d like to expand this to get a daily count for the last 7 days or any time frame. For each function by day?

Forget it. I found your work here Flux: First, Last and the differnce per day that answered this question.