Skip to content

Logic functions

and

Returns true if all the given values are true, false otherwise.

Arguments

  • value Expression that represents a logical value

and(Boolean, [Boolean, ...]): Boolean

Example

Column A: prop("Plan") == 'pro' && prop("Payment problems")

AccountStatusPlanPayment problemsColumn A
Acct 1activepronono
Acct 2activebasicnono
Acct 3suspendedproyesyes
Acct 4activebasicyesno

or

Returns true if at least one of the given values is true, false otherwise.

Arguments

  • value Expression that represents a logical value

or(Boolean, [Boolean, ...]): Boolean

Example

Needs attention: prop("Status") == "idle" || prop("Urgent")

AccountStatusUrgentNeeds attention
Acct 1activenono
Acct 2idlenoyes
Acct 3activeyesyes
Acct 4closednono

not

Returns true if the given value is false, false otherwise.

Arguments

  • value Expression that represents a logical value

not(Boolean): Boolean

Example

Needs onboarding: not(prop("Is onboarded"))

AccountOnboardedNeeds onboarding
Acct 1yesno
Acct 2noyes
Acct 3noyes
Acct 4yesno

eq

Equality check. Returns true if two given values are equal

Arguments

  • value1 First value
  • value2 Value to test against value1 for equality

Supported signatures

  • eq(String | Enum, String | Enum): Boolean
  • eq(Number | Float | Integer, Number | Float | Integer): Boolean
  • eq(Boolean, Boolean): Boolean
  • eq(Date, Date): Boolean

Example

Is active: prop("Status") == "active"

AccountStatusIs active
Acct 1activeyes
Acct 2inactiveno
Acct 3activeyes

neq

Non-equality check. Returns false if two given values are equal, true otherwise.

Arguments

  • value1 First value
  • value2 Value to test against value1 for equality

Supported signatures

  • neq(String | Enum, String | Enum): Boolean
  • neq(Number | Float | Integer, Number | Float | Integer): Boolean
  • neq(Boolean, Boolean): Boolean
  • neq(Date, Date): Boolean

Example

Not pending: prop("Status") != "pending"

OrderStatusNot pending
Order 1completedyes
Order 2pendingno
Order 3shippedyes

gt

Returns true if the first value is greater than the second, false otherwise.

Arguments

  • value1 Value to test being greater than value2
  • value2 Second value

Supported signatures

  • gt(String | Enum, String | Enum): Boolean
  • gt(Number | Float | Integer, Number | Float | Integer): Boolean
  • gt(Boolean, Boolean): Boolean
  • gt(Date, Date): Boolean

Example

High value: prop("Amount") > 1000

OrderAmountHigh value
Order 11500.0yes
Order 2850.0no
Order 32100.0yes

gte

Returns true if the first value is greater than or equal to the second, false otherwise.

Arguments

  • value1 Value to test being greater or equal than value2
  • value2 Second value

Supported signatures

  • gte(String | Enum, String | Enum): Boolean
  • gte(Number | Float | Integer, Number | Float | Integer): Boolean
  • gte(Boolean, Boolean): Boolean
  • gte(Date, Date): Boolean

Example

Eligible: prop("Score") >= 75

StudentScoreEligible
Student 185yes
Student 275yes
Student 368no

lt

Returns true if the first value is less than the second, false otherwise.

Arguments

  • value1 Value to test being less than value2
  • value2 Second value

Supported signatures

  • lt(String | Enum, String | Enum): Boolean
  • lt(Number | Float | Integer, Number | Float | Integer): Boolean
  • lt(Boolean, Boolean): Boolean
  • lt(Date, Date): Boolean

Example

Low stock: prop("Stock") < 10

ProductStockLow stock
Product 15yes
Product 215no
Product 38yes

lte

Returns true if the first value is less than or equal to the second, false otherwise.

Arguments

  • value1 Value to test being less or equal than value2
  • value2 Second value

Supported signatures

  • lte(String | Enum, String | Enum): Boolean
  • lte(Number | Float | Integer, Number | Float | Integer): Boolean
  • lte(Boolean, Boolean): Boolean
  • lte(Date, Date): Boolean

Example

On budget: prop("Spent") <= prop("Budget")

ProjectSpentBudgetOn budget
Project 1850010000yes
Project 21200010000no
Project 31000010000yes

in

Returns true if the value is one of the following values, false otherwise.

Arguments

  • value Value to check
  • values Values to check from

in(String | Number | Float | Integer | Enum, [String | Number | Float | Integer | Enum, ...]): Boolean

Example

Is priority: in(prop("Plan"), "pro", "enterprise")

AccountPlanIs priority
Acct 1freeno
Acct 2proyes
Acct 3basicno
Acct 4enterpriseyes

Control flow

case

Returns the first value that matches its preceding condition. An optional value is returned if it is provided and none of the conditions match.

Arguments

  • condition Condition to match
  • value Value to return if the preceding condition is true
  • default (Optional) Value to return if no conditions match

Supported signatures

  • case(Boolean, String | Enum, [Boolean, String | Enum, ...], String?): String
  • case(Boolean, Number | Float | Integer, [Boolean, Number | Float | Integer, ...], Number | Float | Integer?): Number
  • case(Boolean, Float, [Boolean, Float, ...], Float?): Float
  • case(Boolean, Integer, [Boolean, Integer, ...], Integer?): Integer
  • case(Boolean, Date, [Boolean, Date, ...], Date?): Date
  • case(Boolean, Interval, [Boolean, Interval, ...], Interval?): Interval
  • case(Boolean, Boolean, [Boolean, Boolean, ...], Boolean?): Boolean

Example

Priority: case(prop("Plan") == "enterprise", "High", prop("Plan") == "pro", "Medium", "Low")

AccountPlanPriority
Acct 1enterpriseHigh
Acct 2proMedium
Acct 3basicLow
Acct 4freeLow

Mathematical functions

add

Returns the sum of given values.

Arguments

  • value Value to sum together with previous value

Supported signatures

  • add(Number, [Number, ...]): Number
  • add(Float, [Float, ...]): Float
  • add(Integer, [Integer, ...]): Integer
  • add(Number | Float | Integer, [Number | Float | Integer, ...]): Number
  • add(Interval, [Interval, ...]): Interval
  • add(Date, Interval): Date
  • add(Interval, Date): Date

Example

Total: prop("Price") + prop("Tax") + prop("Shipping")

OrderPriceTaxShippingTotal
Order 199.008.95.00112.9
Order 245.504.13.5053.1
Order 378.257.04.7590.0

sub

Returns the subtraction of given values.

Arguments

  • value Value to subtract from previous value

Supported signatures

  • sub(Number, [Number, ...]): Number
  • sub(Float, [Float, ...]): Float
  • sub(Integer, [Integer, ...]): Integer
  • sub(Number | Float | Integer, [Number | Float | Integer, ...]): Number
  • sub(Date, Date): Interval
  • sub(Date, Interval): Date
  • sub(Interval, Interval): Interval

Example

Profit: prop("Revenue") - prop("Costs")

ProductRevenueCostsProfit
Product 11500.00950.0550.0
Product 22300.501800500.5
Product 3875.25600.5274.75

mul

Returns the multiplication of given values.

Arguments

  • value Value to multiply to previous value

Supported signatures

  • mul(Number, [Number, ...]): Number
  • mul(Float, [Float, ...]): Float
  • mul(Integer, [Integer, ...]): Integer
  • mul(Number | Float | Integer, [Number | Float | Integer, ...]): Number
  • mul(Interval, Number): Interval
  • mul(Number, Interval): Interval

Example

Total: prop("Quantity") * prop("Unit price")

ItemQuantityUnit priceTotal
Item 1519.9999.95
Item 2127.5090.00
Item 3345.00135.00

div

Returns the division of given values.

Arguments

  • dividend The value to be divided
  • divisor The number to divide by

Supported signatures

  • div(Float | Integer, Float | Integer): Float
  • div(Number | Float | Integer, Number | Float | Integer): Number
  • div(Interval, Number): Interval

Example

Average: prop("Total") / prop("Count")

ProductTotalCountAverage
Product 1450.0590.0
Product 2780.01265.0
Product 3225.0375.0

pow

Converts value to the power of the given exponent.

Arguments

  • value Value to raise to the power of the exponent
  • exponent (Optional) Exponent to raise the value to

Supported signatures

  • pow(Number, Number): Number
  • pow(Integer, Number): Integer
  • pow(Float, Number): Float

Example

Squared: pow(prop("Value"), 2)

ItemValueSquared
Item 139
Item 2525
Item 3864

sqrt

Returns the square root of the given value.

Arguments

  • value Value to get the square root of

Supported signatures

  • sqrt(Number): Number
  • sqrt(Integer): Number
  • sqrt(Float): Float

Example

Root: sqrt(prop("Area"))

SquareAreaRoot
Square 193
Square 2164
Square 3255

max

Returns the maximum value from the given values.

Arguments

  • value Value to consider as maximum value

Supported signatures

  • max(Number, [Number, ...]): Number
  • max(Float, [Float, ...]): Float
  • max(Integer, [Integer, ...]): Integer
  • max(Number | Float | Integer, [Number | Float | Integer, ...]): Number
  • max(Date, [Date, ...]): Date
  • max(Interval, [Interval, ...]): Interval

Example

Highest: max(prop("Q1"), prop("Q2"), prop("Q3"))

ProductQ1Q2Q3Highest
Product 1120145138145
Product 29510288102
Product 3225198210225

min

Returns the minimum value from the given values.

Arguments

  • value Value to consider as minimum value

Supported signatures

  • min(Number, [Number, ...]): Number
  • min(Float, [Float, ...]): Float
  • min(Integer, [Integer, ...]): Integer
  • min(Number | Float | Integer, [Number | Float | Integer, ...]): Number
  • min(Date, [Date, ...]): Date
  • min(Interval, [Interval, ...]): Interval

Example

Lowest: min(prop("Q1"), prop("Q2"), prop("Q3"))

ProductQ1Q2Q3Lowest
Product 1120145138120
Product 2958810288
Product 3210198225198

ceil

Returns the smallest integer greater than or equal to the given value.

Arguments

  • value Value to round up

ceil(Number | Float | Integer): Number

Example

Rounded up: ceil(prop("Value"))

ItemValueRounded up
Item 13.144
Item 27.898
Item 35.016

floor

Returns the largest integer less than or equal to the given value.

Arguments

  • value Value to round down

floor(Number | Float | Integer): Number

Example

Rounded down: floor(prop("Value"))

ItemValueRounded down
Item 13.143
Item 27.897
Item 35.995

round

Returns the value rounded to the nearest integer.

Arguments

  • value Value to round to the nearest integer
  • precision An integer specifying the number of significant digits

Supported signatures

  • round(Number | Float | Integer, Number): Number
  • round(Number | Float | Integer): Number

Example

Rounded: round(prop("Value"), 1)

ItemValueRounded
Item 13.143.1
Item 27.897.9
Item 35.555.6

String functions

contains

Returns true if the first value contains the second value (case-insensitive), false otherwise.

Arguments

  • search_string String to search for the presence of lookup string
  • lookup_string String to search for within the search string

Supported signatures

  • contains(String, String): Boolean
  • contains(Enum, String): Boolean

Example

Has keyword: contains(prop("Description"), "urgent")

TaskDescriptionHas keyword
Task 1Fix urgent bugyes
Task 2Review codeno
Task 3URGENT: Deploy hotfixyes
Task 4Update documentationno

Case-insensitive search for substring within text.

split_part

Splits the given string by the given delimiter and returns the part at the given position. The position is 1-based. If the position is greater than the number of parts, a null value is returned.

Arguments

  • string String to split
  • delimiter Delimiter to split the string by
  • position Position of the part to return

split_part(String | Enum, String, Number): String

Example

Domain: split_part(prop("Email"), "@", 2)

UserEmailDomain
User 1alice@example.comexample.com
User 2bob@company.orgcompany.org
User 3charlie@domain.netdomain.net

Extracts the domain from email addresses using '@' as delimiter.

substring

Returns a substring of the given string from the start position for the specified length.

Arguments

  • string String to extract the substring from
  • start Start position (1-based), negative values count from the end
  • length Length of the substring, cannot be negative

substring(String | Enum, Number, Number): String

Example

Code: substring(prop("Product ID"), 1, 3)

ProductProduct IDCode
Product 1PRD-12345PRD
Product 2ACC-67890ACC
Product 3SRV-24680SRV

Extracts the first 3 characters starting from position 1.

concat

Concatenates given values into a single string.

Arguments

  • value Value to concatenate

concat(String | Number | Float | Integer | Enum, [String | Number | Float | Integer | Enum, ...]): String

Example

Full name: concat(prop("First name"), " ", prop("Last name"))

UserFirst nameLast nameFull name
User 1AliceSmithAlice Smith
User 2BobJohnsonBob Johnson
User 3CharlieWilliamsCharlie Williams

Combines first and last names with a space separator.

len

Returns the length of the string from the given value.

Arguments

  • string String to get the length of

len(String | Enum): Integer

Example

Length: len(prop("Title"))

ArticleTitleLength
Article 1Getting Started with TypeScript31
Article 2Advanced React Patterns23
Article 3API Design10

Counts the number of characters in each string.

Date functions

date

Returns the given value as a Date.

Arguments

  • value Value to convert to a date

date(String | Date): Date

Example

Parsed: date(prop("Created"))

EventCreatedParsed
Event 12024-03-152024-03-15
Event 22024-06-202024-06-20
Event 32024-09-102024-09-10

now

Returns the current date and time.

Arguments

now(): Date

Example

Current time: now()

Returns the current date and time when the query executes, for example: 2024-03-15 14:30:45

year

Extracts the year from the given date value.

Arguments

  • date Date value to extract the year from

year(Date): Integer

Example

Year: year(prop("Date"))

EventDateYear
Event 12023-03-152023
Event 22024-06-202024
Event 32024-09-102024

quarter

Extracts the quarter from the given date value.

Arguments

  • date Date value to extract the quarter from

quarter(Date): Integer

Example

Quarter: quarter(prop("Date"))

EventDateQuarter
Event 12024-02-151
Event 22024-06-202
Event 32024-11-104

month

Extracts the month from the given date value.

Arguments

  • date Date value to extract the month from

month(Date): Integer

Example

Month: month(prop("Date"))

EventDateMonth
Event 12024-02-152
Event 22024-06-206
Event 32024-11-1011

week

Extracts the week number from the given date value.

Arguments

  • date Date value to extract the week number from

week(Date): Integer

Example

Week: week(prop("Date"))

EventDateWeek
Event 12024-01-082
Event 22024-06-2025
Event 32024-12-3053

day

Extracts the day from the given date value.

Arguments

  • date Date value to extract the day from

day(Date): Integer

Example

Day: day(prop("Date"))

EventDateDay
Event 12024-03-055
Event 22024-06-2020
Event 32024-09-1515

hour

Extracts the hour from the given date value.

Arguments

  • date Date value to extract the hour from

hour(Date): Integer

Example

Hour: hour(prop("Timestamp"))

EventTimestampHour
Event 12024-03-15 08:30:008
Event 22024-06-20 14:45:0014
Event 32024-09-10 22:15:0022

minute

Extracts the minute from the given date value.

Arguments

  • date Date value to extract the minute from

minute(Date): Integer

Example

Minute: minute(prop("Timestamp"))

EventTimestampMinute
Event 12024-03-15 08:15:0015
Event 22024-06-20 14:45:0045
Event 32024-09-10 22:30:0030

second

Extracts the second from the given date value.

Arguments

  • date Date value to extract the second from

second(Date): Integer

Example

Second: second(prop("Timestamp"))

EventTimestampSecond
Event 12024-03-15 08:30:1212
Event 22024-06-20 14:45:3838
Event 32024-09-10 22:15:5555

day_of_week

Extracts the day of the week from the given date value.

Arguments

  • date Date value to extract the day of the week from

day_of_week(Date): Integer

Example

Day of week: day_of_week(prop("Date"))

EventDateDay of week
Event 12024-03-111
Event 22024-06-204
Event 32024-09-157

Date utility functions

interval

Creates an interval value of the given duration.

Arguments

  • count How many periods in the interval
  • period Length of one period (allowed values: 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond')

interval(Integer | Number, String): Interval

Example

Duration: interval(prop("Count"), prop("Unit"))

TaskCountUnitDuration
Task 15days5 days
Task 22weeks2 weeks
Task 33months3 months

extract

Extracts given date part from the given interval.

Arguments

  • interval Interval value
  • field Date part to extract (allowed values: 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond')

extract(Interval, String | Enum): Number

Example

Days: extract(prop("Duration"), "days")Months: extract(prop("Duration"), "months")

TaskDurationDaysMonths
Task 15 days50
Task 22 weeks140
Task 33 months903

Extracts the number of days or months from an interval value.

date_diff

Calculates the difference between two dates in the specified unit.

Arguments

  • date1 First date value
  • date2 Second date value
  • unit Unit of the result (allowed values: 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second')

date_diff(Date, Date, String | Enum): Number

Example

Days: date_diff(prop("End date"), prop("Start date"), "days")

ProjectStart dateEnd dateDays
Project 12024-03-012024-03-1514
Project 22024-06-012024-06-2019
Project 32024-09-012024-10-0534

net_work_days

Returns the number of net work days (business days) between two dates.

Arguments

  • start_date Start date
  • end_date End date

net_work_days(Date, Date): Integer

Example

Work days: net_work_days(prop("Start date"), prop("End date"))

ProjectStart dateEnd dateWork days
Project 12024-03-012024-03-1510
Project 22024-06-032024-06-149
Project 32024-09-022024-09-2014

start_of_year

Returns the given date value truncated to the start of the year.

Arguments

  • date Date value to truncate

start_of_year(Date): Date

Example

Year start: start_of_year(prop("Date"))

EventDateYear start
Event 12024-03-152024-01-01
Event 22024-06-202024-01-01
Event 32024-09-052024-01-01

end_of_year

Return the given date value truncated to the end of the year / start of next year.

Arguments

  • date Date value to truncate

end_of_year(Date): Date

Example

Year end: end_of_year(prop("Date"))

EventDateYear end
Event 12024-03-152024-12-31
Event 22024-06-202024-12-31
Event 32024-09-052024-12-31

start_of_quarter

Returns the given date value truncated to the start of the quarter.

Arguments

  • date Date value to truncate

start_of_quarter(Date): Date

Example

Quarter start: start_of_quarter(prop("Date"))

EventDateQuarter start
Event 12024-02-152024-01-01
Event 22024-06-202024-04-01
Event 32024-11-102024-10-01

end_of_quarter

Return the given date value truncated to the end of the quarter / start of next quarter.

Arguments

  • date Date value to truncate

end_of_quarter(Date): Date

Example

Quarter end: end_of_quarter(prop("Date"))

EventDateQuarter end
Event 12024-02-152024-03-31
Event 22024-06-202024-06-30
Event 32024-11-102024-12-31

start_of_month

Returns the given date value truncated to the start of the month.

Arguments

  • date Date value to truncate

start_of_month(Date): Date

Example

Month start: start_of_month(prop("Date"))

EventDateMonth start
Event 12024-03-152024-03-01
Event 22024-06-202024-06-01
Event 32024-09-052024-09-01

end_of_month

Returns the given date value truncated to the end of the month / start of next month.

Arguments

  • date Date value to truncate

end_of_month(Date): Date

Example

Month end: end_of_month(prop("Date"))

EventDateMonth end
Event 12024-03-152024-03-31
Event 22024-06-202024-06-30
Event 32024-09-052024-09-30

start_of_week

Returns the given date value truncated to the start of the week.

Arguments

  • date Date value to truncate

start_of_week(Date): Date

Example

Week start: start_of_week(prop("Date"))

EventDateWeek start
Event 12024-03-132024-03-11
Event 22024-06-202024-06-17
Event 32024-09-052024-09-02

end_of_week

Returns the given date value truncated to the end of the week / start of next week.

Arguments

  • date Date value to truncate

end_of_week(Date): Date

Example

Week end: end_of_week(prop("Date"))

EventDateWeek end
Event 12024-03-132024-03-17
Event 22024-06-202024-06-23
Event 32024-09-052024-09-08

start_of_day

Returns the given date value truncated to the start of the day.

Arguments

  • date Date value to truncate

start_of_day(Date): Date

Example

Day start: start_of_day(prop("Timestamp"))

EventTimestampDay start
Event 12024-03-15 14:30:452024-03-15 00:00:00
Event 22024-06-20 09:15:302024-06-20 00:00:00
Event 32024-09-10 22:45:122024-09-10 00:00:00

end_of_day

Returns the given date value truncated to the end of the day / start of next day.

Arguments

  • date Date value to truncate

end_of_day(Date): Date

Example

Day end: end_of_day(prop("Timestamp"))

EventTimestampDay end
Event 12024-03-15 14:30:452024-03-15 23:59:59
Event 22024-06-20 09:15:302024-06-20 23:59:59
Event 32024-09-10 22:45:122024-09-10 23:59:59

start_of_hour

Returns the given date value truncated to the start of the hour.

Arguments

  • date Date value to truncate

start_of_hour(Date): Date

Example

Hour start: start_of_hour(prop("Timestamp"))

EventTimestampHour start
Event 12024-03-15 14:30:452024-03-15 14:00:00
Event 22024-06-20 09:15:302024-06-20 09:00:00
Event 32024-09-10 22:45:122024-09-10 22:00:00

end_of_hour

Returns the given date value truncated to the end of the hour / start of next hour.

Arguments

  • date Date value to truncate

end_of_hour(Date): Date

Example

Hour end: end_of_hour(prop("Timestamp"))

EventTimestampHour end
Event 12024-03-15 14:30:452024-03-15 14:59:59
Event 22024-06-20 09:15:302024-06-20 09:59:59
Event 32024-09-10 22:45:122024-09-10 22:59:59

start_of_minute

Returns the given date value truncated to the start of the minute.

Arguments

  • date Date value to truncate

start_of_minute(Date): Date

Example

Minute start: start_of_minute(prop("Timestamp"))

EventTimestampMinute start
Event 12024-03-15 14:30:452024-03-15 14:30:00
Event 22024-06-20 09:15:302024-06-20 09:15:00
Event 32024-09-10 22:45:122024-09-10 22:45:00

end_of_minute

Returns the given date value truncated to the end of the minute / start of next minute.

Arguments

  • date Date value to truncate

end_of_minute(Date): Date

Example

Minute end: end_of_minute(prop("Timestamp"))

EventTimestampMinute end
Event 12024-03-15 14:30:452024-03-15 14:30:59
Event 22024-06-20 09:15:302024-06-20 09:15:59
Event 32024-09-10 22:45:122024-09-10 22:45:59

JSON functions

json_get_text

Returns the value of the given key from a json object as a string.

Arguments

  • object JSON object
  • key Key to get the value of

json_get_text(Object, String): String

Example

Name: json_get_text(prop("Data"), "name")

UserDataName
User 1{"name": "Alice", "age": 30}Alice
User 2{"name": "Bob", "age": 25}Bob
User 3{"name": "Charlie", "age": 35}Charlie

json_get_number

Returns the value of the given key from a json object as a number.

Arguments

  • object JSON object
  • key Key to get the value of

json_get_number(Object, String): Number

Example

Price: json_get_number(prop("Data"), "price")

ProductDataPrice
Product 1{"price": 19.99, "stock": 10}19.99
Product 2{"price": 45.50, "stock": 5}45.50
Product 3{"price": 12.75, "stock": 20}12.75

json_get_integer

Returns the value of the given key from a json object as an integer.

Arguments

  • object JSON object
  • key Key to get the value of

json_get_integer(Object, String): Integer

Example

Stock: json_get_integer(prop("Data"), "stock")

ProductDataStock
Product 1{"price": 19.99, "stock": 10}10
Product 2{"price": 45.50, "stock": 5}5
Product 3{"price": 12.75, "stock": 20}20

json_get_float

Returns the value of the given key from a json object as a float.

Arguments

  • object JSON object
  • key Key to get the value of

json_get_float(Object, String): Float

Example

Rating: json_get_float(prop("Data"), "rating")

ProductDataRating
Product 1{"rating": 4.5, "reviews": 120}4.5
Product 2{"rating": 3.8, "reviews": 85}3.8
Product 3{"rating": 4.9, "reviews": 200}4.9

json_get_timestamptz

Returns the value of the given key from a json object as a date.

Arguments

  • object JSON object
  • key Key to get the value of

json_get_timestamptz(Object, String): Date

Example

Created: json_get_timestamptz(prop("Data"), "created")

OrderDataCreated
Order 1{"created": "2024-03-15", "status": "ok"}2024-03-15
Order 2{"created": "2024-06-20", "status": "ok"}2024-06-20
Order 3{"created": "2024-09-10", "status": "ok"}2024-09-10

json_get_boolean

Returns the value of the given key from a json object as a boolean.

Arguments

  • object JSON object
  • key Key to get the value of

json_get_boolean(Object, String): Boolean

Example

Active: json_get_boolean(prop("Data"), "active")

AccountDataActive
Account 1{"active": true, "verified": yes}yes
Account 2{"active": false, "verified": no}no
Account 3{"active": true, "verified": yes}yes

Type conversions

int

Returns the given value as an integer.

Arguments

  • value Value to convert to an integer

int(Boolean | String | Enum | Number | Float | Integer): Integer

Example

As integer: int(prop("Price"))

ProductPriceAs integer
Item A9.999
Item B15.5015
Item C7.257

Converts decimal values to integers by truncating.

float

Returns the given value as a floating point number.

Arguments

  • value Value to convert to a float

float(String | Enum | Number | Float | Integer): Float

Example

As float: float(prop("Count"))

ProductCountAs float
Item A55.00
Item B1212.00
Item C88.00

Converts integers to floating point numbers.

str

Returns the given value as a string.

Arguments

  • value Value to convert to a string

str(Boolean | String | Enum | Number | Float | Integer | Date | Object | Interval): String

Example

As string: str(prop("Value"))

ProductValueAs string
Item A42"42"
Item B3.14"3.14"
Item Ctrue"true"

Converts values to their string representation.

bool

Returns the given value as a boolean.

Arguments

  • value Value to convert to a boolean

bool(Boolean | Number | Integer): Boolean

Example

As boolean: bool(prop("Active"))

ProductActiveAs boolean
Item A1yes
Item B0no
Item C5yes

Converts numbers to booleans. Zero becomes false, non-zero becomes true.

Window functions

sum

Returns the sum of the given column or range. Range nomenclature: unbounded: null, current row: 0, previous row: -1, next row: 1.

Arguments

  • field Field to aggregate
  • sort_field (Optional) Field to sort by
  • sort_direction (Optional) Sort direction ("asc"/"desc")
  • range_start (Optional) Start index of range to sum over, relative to the current row
  • range_end (Optional) End index of range to sum over, relative to the current row
  • group (Optional) Field to group by

Supported signatures

  • sum(Number | Float | Integer): Number
  • sum(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number): Number
  • sum(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number, String | Enum | Date | Number | Integer | Float | Boolean): Number
  • sum(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean): Number
  • sum(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean, String): Number

Example

Regional total: sum(prop("Revenue"), prop("Region"))

RegionProductRevenueRegional total
NorthLaptop3000.004500.00
NorthMouse500.004500.00
NorthMonitor1000.004500.00
SouthPhone2000.003500.00
SouthTablet1500.003500.00
EastDesk1200.002000.00
EastChair800.002000.00

Shows total revenue per region. Each region's rows display the same regional total.

count

Returns the count of the given column or range. Range nomenclature: unbounded: null, current row: 0, previous row: -1, next row: 1.

Arguments

  • sort_field (Optional) Field to sort by
  • sort_direction (Optional) Sort direction ("asc"/"desc")
  • range_start (Optional) Start index of range to count from, relative to the current row
  • range_end (Optional) End index of range to count to, relative to the current row
  • group (Optional) Field to group by

Supported signatures

  • count(): Integer
  • count(String | Enum | Date | Number | Integer | Float | Boolean): Integer
  • count(String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number): Integer
  • count(String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number, String | Enum | Date | Number | Integer | Float | Boolean): Integer

Example

Orders per region: count(prop("Region"))

RegionProductOrders per region
NorthLaptop3
NorthMouse3
NorthMonitor3
SouthPhone2
SouthTablet2
EastDesk2
EastChair2

Shows number of orders per region. Each region's rows display the same count.

avg

Returns the average of the given values. Range nomenclature: unbounded: null, current row: 0, previous row: -1, next row: 1.

Arguments

  • field Field to aggregate
  • sort_field (Optional) Field to sort by
  • sort_direction (Optional) Sort direction ("asc"/"desc")
  • range_start (Optional) Start index of range to average over, relative to the current row
  • range_end (Optional) End index of range to average over, relative to the current row
  • group (Optional) Field to group by

Supported signatures

  • avg(Number | Float | Integer): Number
  • avg(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number): Number
  • avg(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number, String | Enum | Date | Number | Integer | Float | Boolean): Number
  • avg(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean): Number
  • avg(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean, String): Number

Example

Regional average: avg(prop("Revenue"), prop("Region"))

RegionProductRevenueRegional average
NorthLaptop3000.001500.00
NorthMouse500.001500.00
NorthMonitor1000.001500.00
SouthPhone2000.001750.00
SouthTablet1500.001750.00
EastDesk1200.001000.00
EastChair800.001000.00

Shows average revenue per region. Each region's rows display the same average.

range_min

Returns the minimum value of the given column or range. Range nomenclature: unbounded: null, current row:0, previous row: -1, next row: 1.

Arguments

  • field Field to aggregate
  • sort_field (Optional) Field to sort by
  • sort_direction (Optional) Sort direction ("asc"/"desc")
  • range_start (Optional) Start index of range to find the minimum value over, relative to the current row
  • range_end (Optional) End index of range to find the minimum value over, relative to the current row
  • group (Optional) Field to group by

Supported signatures

  • range_min(String | Enum): String
  • range_min(Date): Date
  • range_min(Number | Float | Integer): Number
  • range_min(String | Enum, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number): String
  • range_min(Date, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number): Date
  • range_min(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number): Number
  • range_min(String | Enum, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number, String | Enum | Date | Number | Integer | Float | Boolean): String
  • range_min(Date, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number, String | Enum | Date | Number | Integer | Float | Boolean): Date
  • range_min(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number, String | Enum | Date | Number | Integer | Float | Boolean): Number
  • range_min(String | Enum, String | Enum | Date | Number | Integer | Float | Boolean): String
  • range_min(Date, String | Enum | Date | Number | Integer | Float | Boolean): Date
  • range_min(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean): Number
  • range_min(String | Enum, String | Enum | Date | Number | Integer | Float | Boolean, String): String
  • range_min(Date, String | Enum | Date | Number | Integer | Float | Boolean, String): Date
  • range_min(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean, String): Number

Example

Regional minimum: range_min(prop("Revenue"), prop("Region"))

RegionProductRevenueRegional minimum
NorthLaptop3000.00500.00
NorthMouse500.00500.00
NorthMonitor1000.00500.00
SouthPhone2000.001500.00
SouthTablet1500.001500.00
EastDesk1200.00800.00
EastChair800.00800.00

Shows minimum revenue per region. Each region's rows display the same minimum.

range_max

Returns the maximum value of the given column or range. Range nomenclature: unbounded: null, current row:0, previous row: -1, next row: 1.

Arguments

  • field Field to aggregate
  • sort_field (Optional) Field to sort by
  • sort_direction (Optional) Sort direction ("asc"/"desc")
  • range_start (Optional) Start index of range to find the minimum value over, relative to the current row
  • range_end (Optional) End index of range to find the minimum value over, relative to the current row
  • group (Optional) Field to group by

Supported signatures

  • range_max(String | Enum): String
  • range_max(Date): Date
  • range_max(Number | Float | Integer): Number
  • range_max(String | Enum, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number): String
  • range_max(Date, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number): Date
  • range_max(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number): Number
  • range_max(String | Enum, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number, String | Enum | Date | Number | Integer | Float | Boolean): String
  • range_max(Date, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number, String | Enum | Date | Number | Integer | Float | Boolean): Date
  • range_max(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number, String | Enum | Date | Number | Integer | Float | Boolean): Number
  • range_max(String | Enum, String | Enum | Date | Number | Integer | Float | Boolean): String
  • range_max(Date, String | Enum | Date | Number | Integer | Float | Boolean): Date
  • range_max(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean): Number
  • range_max(String | Enum, String | Enum | Date | Number | Integer | Float | Boolean, String): String
  • range_max(Date, String | Enum | Date | Number | Integer | Float | Boolean, String): Date
  • range_max(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean, String): Number

Example

Regional maximum: range_max(prop("Revenue"), prop("Region"))

RegionProductRevenueRegional maximum
NorthLaptop3000.003000.00
NorthMouse500.003000.00
NorthMonitor1000.003000.00
SouthPhone2000.002000.00
SouthTablet1500.002000.00
EastDesk1200.001200.00
EastChair800.001200.00

Shows maximum revenue per region. Each region's rows display the same maximum.

first_value

Returns the first value of the given column or range. Range nomenclature: unbounded: null, current row:0, previous row: -1, next row: 1.

Arguments

  • field Field to aggregate
  • sort_field (Optional) Field to sort by
  • sort_direction (Optional) Sort direction ("asc"/"desc")
  • range_start (Optional) Start index of range to find the minimum value over, relative to the current row
  • range_end (Optional) End index of range to find the minimum value over, relative to the current row
  • group (Optional) Field to group by

Supported signatures

  • first_value(String | Enum): String
  • first_value(Number | Float | Integer): Number
  • first_value(Date): Date
  • first_value(Interval): Interval
  • first_value(Boolean): Boolean
  • first_value(Object): Object
  • first_value(String | Enum, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number): String
  • first_value(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number): Number
  • first_value(Date, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number): Date
  • first_value(Interval, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number): Interval
  • first_value(Boolean, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number): Boolean
  • first_value(Object, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number): Object
  • first_value(String | Enum, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number, String | Enum | Date | Number | Integer | Float | Boolean): String
  • first_value(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number, String | Enum | Date | Number | Integer | Float | Boolean): Number
  • first_value(Date, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number, String | Enum | Date | Number | Integer | Float | Boolean): Date
  • first_value(Interval, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number, String | Enum | Date | Number | Integer | Float | Boolean): Interval
  • first_value(Boolean, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number, String | Enum | Date | Number | Integer | Float | Boolean): Boolean
  • first_value(Object, String | Enum | Date | Number | Integer | Float | Boolean, String, Number, Number, String | Enum | Date | Number | Integer | Float | Boolean): Object
  • first_value(String | Enum, String | Enum | Date | Number | Integer | Float | Boolean): String
  • first_value(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean): Number
  • first_value(Date, String | Enum | Date | Number | Integer | Float | Boolean): Date
  • first_value(Interval, String | Enum | Date | Number | Integer | Float | Boolean): Interval
  • first_value(Boolean, String | Enum | Date | Number | Integer | Float | Boolean): Boolean
  • first_value(Object, String | Enum | Date | Number | Integer | Float | Boolean): Object
  • first_value(String | Enum, String | Enum | Date | Number | Integer | Float | Boolean, String): String
  • first_value(Number | Float | Integer, String | Enum | Date | Number | Integer | Float | Boolean, String): Number
  • first_value(Date, String | Enum | Date | Number | Integer | Float | Boolean, String): Date
  • first_value(Interval, String | Enum | Date | Number | Integer | Float | Boolean, String): Interval
  • first_value(Boolean, String | Enum | Date | Number | Integer | Float | Boolean, String): Boolean
  • first_value(Object, String | Enum | Date | Number | Integer | Float | Boolean, String): Object

Example

First order: first_value(prop("Product"), prop("Date"), "asc", null, null, prop("Region"))

RegionDateProductFirst order
North2024-01-01LaptopLaptop
North2024-01-03MouseLaptop
North2024-01-05MonitorLaptop
South2024-01-02PhonePhone
South2024-01-04TabletPhone
South2024-01-06ChargerPhone
East2024-01-02DeskDesk
East2024-01-07ChairDesk

Shows the first product ordered in each region when sorted by date.

percentage

Returns the percentage (between 0 and 1) of the value in a row relative to the sum of the value in all rows. The optional second argument can be used to break up the rows into groups when calculating the percentage.

Arguments

  • value Value to calculate the percentage of
  • group (Optional) Value by which to group the rows during calculation

Supported signatures

  • percentage(Number): Number
  • percentage(Number, String | Enum | Boolean | Date): Number
  • percentage(Float): Float
  • percentage(Float, String | Enum | Boolean | Date): Float
  • percentage(Integer): Integer
  • percentage(Integer, String | Enum | Boolean | Date): Integer

Example

Share: percentage(prop("Revenue"), prop("Region"))

AccountRegionRevenueShare
Acct 1North3000.000.75
Acct 2North1000.000.25
Acct 3South1500.000.60
Acct 4South1000.000.40

offset

Returns the value of the given property offset from the current row by the given amount.

Arguments

  • field Field to offset
  • offset Offset index (<0 will result in previous values, e.g. -2)
  • sort_field Field to sort by
  • sort_direction Sort direction ("asc"/"desc")
  • group (Optional) Field to group by

Supported signatures

  • offset(String, Number, String | Enum | Date | Number | Integer | Float | Boolean, String?): String
  • offset(Enum, Number, String | Enum | Date | Number | Integer | Float | Boolean, String?): Enum
  • offset(Number, Number, String | Enum | Date | Number | Integer | Float | Boolean, String?): Number
  • offset(Integer, Number, String | Enum | Date | Number | Integer | Float | Boolean, String?): Integer
  • offset(Float, Number, String | Enum | Date | Number | Integer | Float | Boolean, String?): Float
  • offset(Boolean, Number, String | Enum | Date | Number | Integer | Float | Boolean, String?): Boolean
  • offset(Date, Number, String | Enum | Date | Number | Integer | Float | Boolean, String?): Date
  • offset(String, Number, String | Enum | Date | Number | Integer | Float | Boolean, String, String | Enum | Date | Number | Integer | Float | Boolean): String
  • offset(Enum, Number, String | Enum | Date | Number | Integer | Float | Boolean, String, String | Enum | Date | Number | Integer | Float | Boolean): Enum
  • offset(Number, Number, String | Enum | Date | Number | Integer | Float | Boolean, String, String | Enum | Date | Number | Integer | Float | Boolean): Number
  • offset(Integer, Number, String | Enum | Date | Number | Integer | Float | Boolean, String, String | Enum | Date | Number | Integer | Float | Boolean): Integer
  • offset(Float, Number, String | Enum | Date | Number | Integer | Float | Boolean, String, String | Enum | Date | Number | Integer | Float | Boolean): Float
  • offset(Boolean, Number, String | Enum | Date | Number | Integer | Float | Boolean, String, String | Enum | Date | Number | Integer | Float | Boolean): Boolean
  • offset(Date, Number, String | Enum | Date | Number | Integer | Float | Boolean, String, String | Enum | Date | Number | Integer | Float | Boolean): Date

Example

Previous: offset(prop("Revenue"), -1, prop("Date"), "asc")

DateRevenuePrevious
2024-01-011250.50
2024-01-023420.001250.50
2024-01-03890.253420.00
2024-01-042100.00890.25

row_number

Returns the row number of the row in the current group.

Arguments

  • sort_field (Optional) Field to sort by
  • sort_direction (Optional) Sort direction ("asc"/"desc")
  • group (Optional) Field to group by

Supported signatures

  • row_number(): Integer
  • row_number(String | Enum | Date | Number | Integer | Float | Boolean): Integer
  • row_number(String | Enum | Date | Number | Integer | Float | Boolean, String): Integer
  • row_number(String | Enum | Date | Number | Integer | Float | Boolean, String, String | Enum | Date | Number | Integer | Float | Boolean): Integer

Example

Rank: row_number(prop("Revenue"), "desc", prop("Region"))

AccountRegionRevenueRank
Acct 1North3420.001
Acct 2North1250.502
Acct 3South2100.001
Acct 4South890.252

Utility functions

prop

Returns the value of the given property from the current row.

Arguments

  • property Property to get the value of

Supported signatures

  • prop(String): Unknown
  • prop(Reference): Unknown

variable

Returns the value of the given variable in the exploration.

Arguments

  • name Variable name to get the value of

variable(String): Unknown

coalesce

Returns first non-null value in arguments.

Arguments

  • value Value to return if all preceding values are null

Supported signatures

  • coalesce(String, [String, ...]): String
  • coalesce(Enum, [Enum, ...]): Enum
  • coalesce(Number, [Number, ...]): Number
  • coalesce(Float, [Float, ...]): Float
  • coalesce(Integer, [Integer, ...]): Integer
  • coalesce(Number | Float | Integer, [Number | Float | Integer, ...]): Number
  • coalesce(Boolean, [Boolean, ...]): Boolean
  • coalesce(Date, [Date, ...]): Date
  • coalesce(Interval, [Interval, ...]): Interval
  • coalesce(Enum, [Enum, ...]): Enum
  • coalesce(String | Enum, [String | Enum, ...]): String

format

Formats the value to the given format in the final output.

Arguments

  • field Field to format
  • format Format to display in. For all numeric fields, can be one of "eur", "usd" or "gbp". Floating-point number fields also accept "percentage". For date fields, can be one of "iso", "date" or "time".
  • precision Optional. Displays the formatted value up to the given precision for Date fields and as the given precision for Integer fields. Can be one of "year", "quarter", "month", "week", "day", "hour", "day_of_week"

Supported signatures

  • format(String, String): String
  • format(Number, String): Number
  • format(Float, String): Float
  • format(Integer, String): Integer
  • format(Integer, String, String): Integer
  • format(Boolean, String): Boolean
  • format(Date, String): Date
  • format(Date, String, String): Date
  • format(Interval, String): Interval
  • format(Enum, String): Enum

Example

Formatted: format(prop("Revenue"), "eur")

AccountRevenueFormatted
Acct 11250.50€1,250.50
Acct 2890.25€890.25
Acct 33420.00€3,420.00