Hi all,
I have a data like this:
fix
has the value of either 0, 1, 2 or 255
ttfx
is a positive integer number
I’d like to get the total number of occurrence where:
fix
== 1 && ttfx
> 0
How can I do it in Flux 2.0.x query?
Thanks!
Hi all,
I have a data like this:
fix
has the value of either 0, 1, 2 or 255
ttfx
is a positive integer number
I’d like to get the total number of occurrence where:
fix
== 1 && ttfx
> 0
How can I do it in Flux 2.0.x query?
Thanks!
Did you try using ‘and’ instead of ‘&&’ - it has a few examples here:
Yeah, I know how to filter base on a single _field
, and I can set multiple conditions on that _field
using and
/ or
But what I need is different conditions for multiple _field
: I need to filter out and count the number of cases where:
_field
== “fix”, _value
== 1, and_field
== “ttff”, _value
!= 0Is this possible in InfluxDB?
pretty sure that you cannot do this in one filter - but, you could create two functions (not efficient, but it could work), one for each of your two filter combinations in your comment, then join the two streams back together (or even easier, just add the results together - from your count())?
You can combine and
with or
and parenthesis like this:
|> filter(fn: (r) => (r._field == "fix" and r._value == 1) or (r._field="ttff" and r._value != 0))
@nicgrobler Could you show how it can be done? I don’t mind lower efficiency. How do I get their intersection if I join two streams back together.
@mhall119 thanks for your reply, but it doesn’t seem to work
I’m trying to filter the two highlighted row out from the table.
this is nice - couldn’t see this in the docs (using brackets like this to combine) - and no instance on which to test.
change the query to use “) and (” instead of “) or (” assuming you want it to return only the two highlighted rows.
I think after the first condition the data left only has “fix” column, then the second condition asked for “ttff” and then there’s no data left?
I found that it can be worked around using two queries, then do the actual conditional filtering part using Grafana’s transform, but I’d like to have filtered data straight from the db to prevent processing data in the frontend.
That’s correct, you’ll only have one value for r._field
so using what is essentially r._field == "fix" and r._field == "ttff"
would always be false and therefore would filter out every record.
You want to exclude those roles, or return only those roles?
I want to return only the highlighted rows.
And eventually I want to count the number of returned rows, for the example that I’ve provided, it should return 2.