Search code examples
influxdb

How to divide two fields using InfluxDb query language


I am using InfluxDB and I want to divide two fields.

My query which is picking result is working fine.

SELECT "payload-length" ,"in-data" FROM "test50"."autogen"."SYS-LOG" 

But when i try to divide these two fields i am getting error,

SELECT "payload-length"  / "in-data" FROM "test50"."autogen"."SYS-LOG" 

Error i am getting is :

unable to construct transform iterator from *influxql.stringChanIterator and *influxql.stringChanIterator

Not sure what i am missing.


Solution

  • What is the datatype stored in your fields ? What should the result represent ?

    I get the same result if I try to do a division on two string fields.

    > insert mymeasurement,tag1=tag1,tag2=tag2 fieldA="aaa",fieldB="bbb"
    > insert mymeasurement,tag1=tag1,tag2=tag2 field1=500,field2=20
    
    > select * from mymeasurement;
    name: mymeasurement
    time                field1 field2 fieldA fieldB tag1 tag2
    ----                ------ ------ ------ ------ ---- ----
    1505944438559106045               aaa    bbb    tag1 tag2
    1505944483558339332 500    20                   tag1 tag2
    
    > show field keys from "mymeasurement"
    name: mymeasurement
    fieldKey fieldType
    -------- ---------
    field1   float
    field2   float
    fieldA   string
    fieldB   string
    
    > select field1 / field2 from mymeasurement
    name: mymeasurement
    time                field1_field2
    ----                -------------
    1505944483558339332 25
    
    > select fieldA , fieldB from mymeasurement
    name: mymeasurement
    time                fieldA fieldB
    ----                ------ ------
    1505944438559106045 aaa    bbb
    
    > select fieldA / fieldB from mymeasurement
    ERR: unable to construct transform iterator from *influxql.stringChanIterator and *influxql.stringChanIterator