InfluxDB merge different Field Value to single printout

influxdb
#1

Hello, Experts

i am the newcomer for the Influxdb
i want to get the one line printout by mix/merge different field value, like the following , (Mix or Merge is method what i assume)

select mix(value) from test group by “name”
name: test
tags: name=“case1”
time mix/merge

1970-01-01T00:00:00Z failed,passed,skipped

!!!

select * from test group by “name”
name: test
tags: name=“case1”
time caseAuthor caseName caseResult value

2018-07-20T03:51:42.599533888Z mike case1 pass 1
2018-07-20T03:51:42.690955475Z mike case1 failed 2
2018-07-20T03:51:42.723272883Z mike case1 skipped 3

thanks for any help
BRs
/Yijun

#2

Hi @peter-zyj,

I’m not entirely sure what you’re asking or what you hope to accomplish. Are you trying to find all the unique values for a specific field? If that’s what you’re looking for, you can use the DISTINCT() function, which is documented here.

I have created an example which inserts 5 points, using the tags caseAuthor and caseName and the fields caseResult and value:

> insert test,caseAuthor="mike",caseName="case1" caseResult="pass",value=1
> insert test,caseAuthor="mike",caseName="case1" caseResult="failed",value=2
> insert test,caseAuthor="mike",caseName="case1" caseResult="skipped",value=3
> insert test,caseAuthor="mike",caseName="case2" caseResult="pass",value=1
> insert test,caseAuthor="mike",caseName="case2" caseResult="failed",value=2

Retrieving the data:

> select * from test
name: test
time                caseAuthor caseName caseResult value
----                ---------- -------- ---------- -----
1532128869943772100 "mike"     "case1"  pass       1
1532128900834008300 "mike"     "case1"  failed     2
1532128919880375300 "mike"     "case1"  skipped    3
1532128946957804900 "mike"     "case2"  pass       1
1532128965212745400 "mike"     "case2"  failed     2
> select * from test group by "caseName"
name: test
tags: caseName="case1"
time                caseAuthor caseResult value
----                ---------- ---------- -----
1532128869943772100 "mike"     pass       1
1532128900834008300 "mike"     failed     2
1532128919880375300 "mike"     skipped    3

name: test
tags: caseName="case2"
time                caseAuthor caseResult value
----                ---------- ---------- -----
1532128946957804900 "mike"     pass       1
1532128965212745400 "mike"     failed     2

You can then find the distinct field values as follows:

> select distinct("caseResult") from test
name: test
time distinct
---- --------
0    pass
0    failed
0    skipped
> select distinct("caseResult") from test group by "caseName"
name: test

tags: caseName="case1"
time distinct
---- --------
0    pass
0    failed
0    skipped

name: test
tags: caseName="case2"
time distinct
---- --------
0    pass
0    failed

If that’s not what you’re looking for you can find a complete list of the functions available in InfluxQL in our documentation.

#3

thanks @noahcrowley

sorry for my poor description , my question is whether we have the function like " distinct ", but the function could combine/merge unique values(string var) to one line, or Merge 2 rows value to one, like:

your example:
> select MIX(“caseResult”) from test
name: test
time distinct
---- --------
0 pass
0 failed
0 skipped

My wish and request: MIX is guessed name what i like and want

> select distinct("caseResult") from test
name: test
time    MIX
---- --------
0    pass, failed, skipped

thanks
/Yijun

#4

No, this is not currently possible.

Can you provide more details about what problem you hope to solve using this solution?

#5

thanks Again @noahcrowley

what i want is base on the key of CaseName, list all existing Case Result by Grafana
like

for case1, so many round of test run on that, but all passed without failure
for case2, same round number of test, but 50% pass, 50% failure

i want to get the view, printout the query result, sort by key (case name), get the value(unique test result) in one line, which seems require the merge of different records’s value

thanks
/Yijun