# JAQL Syntax Reference

Properties

Name Type Required Description Default
datasource string or object Yes States the connection (ElastiCube) name against which to execute the query. N/A
metadata object[] Yes Contains an array of JAQL elements. A JAQL element is essentially dimension or measure. N/A
format string No States the expected query result data type; CSV or JSON "json"
offset number No Cuts the query result by setting the row offset and row count undefined
count number No Cuts the query result by setting the row offset and row count undefined
csvSeparator string No Defines the CSV separator that is used when rendering the CSV query result ","
isMaskedResponse boolean No Whether returned values are formatted. When true, values will be objects with a data+text property pair. true

# Datasource

# Metadata Items

Supported Date Levels

  • years
  • quarters
  • months
  • days
  • hours
  • minutes
  • timestamp

# Dimensions

Properties

Name Type Required Description
dim string Yes The dimension name
level string No States the date level in a Date dimension
filter object No Defines the element's filter

Example

{
    "dim": "[Users.CreatedOn (Calendar)]",
    "level": "days"
}

# Simple Aggregations

Properties

Name Type Required Description
dim string Yes The dimension name
level string No States the date level in a Date dimension
agg string Yes Defines the measure aggregation over the dimension defined in the dim property
filter object No Defines the element's filter

Supported Aggregations

  • avg
  • count
  • countduplicates
  • min
  • max
  • median
  • stdev
  • stdevp
  • sum
  • var
  • varp

Example

{
    "dim": "[Users.ID]",
    "agg": "count"
}

# Formulas

Properties

Name Type Required Description
formula string Yes Defines the formula string
context object Yes Defines the context of the dimensions used in the formula

Example

{
    "formula": "count([users]) / 10",
    "context": {
        "users": {
            "dim": "[Users.ID]"
        }
    }
}

# Filtering

# Members

Supported Datatypes: text, number, datetime

Filter by specific unique values of the dimension

Properties

Name Type Required Description
members string[] Yes An array of values

Example

{
    "members": ["USA", "China"]
}

# Text Filters

Supported Datatypes: text

Supported Filters

  • equals
  • doesntEqual
  • contains
  • doesntContain
  • startsWith
  • doesntStartWith
  • endsWith
  • doesntEndWidth
  • like

Example

{
    "equals": "USA"
}

# Mathematical Filters

Supported Datatypes: number, datetime

Supported Filters

  • equals
  • doesntEqual
  • from
  • fromNotEqual
  • to
  • toNotEqual

Example

{
    "equals": 42
}

# Relative Date Filters

Supported Datatypes: datetime

Supported Filters

  • last
  • next

Properties

Name Type Required Description
count number No How many time units to include. Defaults to 1
offset number No How many time units to skip. Defaults to 0
anchor string No Set a custom date to calculate from. Can also be first or last.

Example

{ 
    "last":{ 
        "count": 5,
        "offset": 10
    }
}

# Top/Bottom Filters

Supported Datatypes: text, number, datetime

Supported Filters

  • top
  • bottom

Properties

Name Type Required Description
top or bottom number Yes How many items to include
by object Yes A JAQL aggregation object (dim+agg or formula+context)

Example

{ 
    "top": 2,
    "by": { 
        "dim": "price",
        "agg": "sum"
    }
}

# Negative Filters

Example

{ 
    "exclude": { 
        "members": [ 
            "London",
            "Paris"
        ]
    }
}

# Combining Filters

Supported Filters

  • and
  • or

Example

{ 
    "or":[ 
        { 
            "like": "%acer%"
        },
        { 
            "contains": "toshiba"
        }
    ]
}

# Additional References