Overview
BTBI Creator expressions are used to perform calculations for:
A major part of these expressions is the functions and operators that you can use in them. The functions and operators can be divided into a few basic categories:
-
Mathematical: Number-related functions
-
String: Word- and letter-related functions
-
Dates: Date- and time-related functions
-
Logical transformation: Includes boolean (true or false) functions and comparison operators
Mathematical functions and operators
Mathematical functions and operators work in one of two ways:
-
Some mathematical functions perform calculations based on a single row. For example, rounding, taking a square root, multiplying, and similar functions can be used for values in a single row, returning a distinct value for each and every row. All mathematical operators, such as
+, are applied one row at a time. -
Other mathematical functions, like averages and running totals, operate over many rows. These functions take many rows and reduce them to a single number, then display that same number on every row.
Function for Any BTBI Creator Expression
|
Function |
Syntax |
Purpose |
|---|---|---|
|
abs |
abs(value) |
Returns the absolute value of |
|
ceiling |
ceiling(value) |
Returns the smallest integer greater than or equal to |
|
exp |
exp(value) |
Returns e to the power of |
|
floor |
floor(value) |
Returns the largest integer less than or equal to |
|
ln |
ln(value) |
Returns the natural logarithm of |
|
log |
log(value) |
Returns the base 10 logarithm of |
|
mod |
mod(value, divisor) |
Returns the remainder of dividing |
|
power |
power(base, exponent) |
Returns |
|
rand |
rand() |
Returns a random number between 0 and 1. |
|
round |
round(value, num_decimals) |
Returns |
|
sqrt |
sqrt(value) |
Returns the square root of |
Operators for any BTBI Expression
You can use the following standard mathematical operators:
|
Operator |
Syntax |
Purpose |
|---|---|---|
|
+ |
|
Adds |
|
- |
|
Subtracts |
|
* |
|
Multiplies |
|
/ |
|
Divides |
String Functions
String functions operate on sentences, words, or letters, which are collectively called "strings." You can use string functions to capitalize words and letters, extract parts of a phrase, check to see if a word or letter is in a phrase, or replace elements of a word or phrase. String functions can also be used to format the data returned in the table.
Functions for Any BTBI Creator Expression
|
Function |
Syntax |
Purpose |
|---|---|---|
|
concat |
concat(value_1, value_2, ...) |
Returns |
|
contains |
contains(string, search_string) |
Returns |
|
length |
length(string) |
Returns the number of characters in |
|
lower |
lower(string) |
Returns |
|
position |
position(string, search_string) |
Returns the start index of |
|
replace |
replace(string, old_string, new_string) |
Returns |
|
substring |
substring(string, start_position, length) |
Returns the substring of |
|
upper |
uppser(string) |
Returns string with all characters converted to uppercase. |
Date Functions
Date functions enable you to work with dates and times.
Functions for Any BTBI Creator Expression
|
Function |
Syntax |
Purpose |
|---|---|---|
|
add_days |
|
Adds |
|
add_hours |
|
Adds |
|
add_minutes |
|
Adds |
|
add_months |
|
Adds |
|
add_seconds |
|
Adds |
|
add_years |
|
Adds |
|
date |
|
Returns " |
|
date_time |
|
Returns |
|
diff_days |
|
Returns the number of days between |
|
diff_hours |
|
Returns the number of hours between |
|
diff_minutes |
|
Returns the number of minutes between |
|
diff_months |
|
Returns the number of months between |
|
diff_seconds |
|
Returns the number of seconds between |
|
diff_years |
|
Returns the number of years between |
|
extract_days |
|
Extracts the days from |
|
extract_hours |
|
Extracts the hours from |
|
extract_minutes |
|
Extracts the minutes from |
|
extract_months |
|
Extracts the months from |
|
extract_seconds |
|
Extracts the seconds from |
|
extract_years |
|
Extracts the years from |
|
now |
|
Returns the current date and time. |
|
trunc_days |
|
Truncates |
|
trunc_hours |
|
Truncates |
|
trunc_minutes |
|
Truncates |
|
trunc_months |
|
Truncates |
|
trunc_years |
|
Truncates |
Logical functions, operators, and constants
Logical functions and operators are used to assess whether something is true or false. Expressions using these elements take a value, evaluate it against some criteria, return Yes if the criteria are met, and No if the criteria are not met. There are also various logical operators for comparing values and combining logical expressions.
Functions for Any BTBI Creator Expression
|
Function |
Syntax |
Purpose |
|---|---|---|
|
case |
case(when(yesno_arg, value_if_yes), when(yesno_arg, value_if_yes),..., else_value) |
Allows conditional logical with multiple conditions and outcomes. Returns value_if_yes for the first when case who yesno_arg value is yes. Returns else_value if all when cases are no. |
|
coalesce |
coalesce(value_1, value_2, ...) |
Returns the first non-null value in value_1, value_2, ..., value_n if found and null otherwise. |
|
if |
if(yesno_expression, value_if_yes, value_if_no) |
If yesno_expression evaluates to Yes, returns the value_if_yes value. Otherwise, returns the value_if_no value. |
|
is_null |
is_null(value) |
Returns Yes if value is null and No otherwise. |
Operators for Any BTBI Creator Expression
The following comparison operators can be used with any data type:
|
Operator |
Syntax |
Purpose |
|---|---|---|
|
= |
value_1 = value_2 |
Returns |
|
!= |
value_1 != value_2 |
Returns |
The following comparison operators can be used with numbers, dates, and strings:
|
Operator |
Syntax |
Purpose |
|---|---|---|
|
> |
value_1 > value_2 |
Returns |
|
< |
value_1 < value_2 |
Returns |
|
>= |
value_1 >= value_2 |
Returns |
|
<= |
value_1 <= value_2 |
Returns |
You can also combine BTBI Creator Expressions with these logical operators:
|
Operator |
Syntax |
Purpose |
|---|---|---|
|
AND |
value_1 AND value_2 |
Returns |
|
OR |
value_1 OR value_2 |
Returns |
|
NOT |
NOT value |
Returns |
Note: These logical operators must be capitalized. Logical operators written in lowercase will not work.
Logical Constants
You can use logical constants in Looker expressions. These constants are always written in lowercase and have the following meanings:
|
Constant |
Meaning |
|---|---|
|
yes |
True |
|
no |
False |
|
null |
No value |
Note that the constants yes and no are the special symbols that mean true or false in Looker expressions. In contrast, using quotes such as in "yes" and "no" creates literal strings with those values.
Logical expressions evaluate to true or false without requiring an if function. For example, this:
if(${field} > 100, yes, no)
is equivalent to this:
${field} > 100
You also can use null to indicate no value. For example, you may want to determine if a field is empty, or assign an empty value in a certain situation. This formula returns no value if the field is less than 1, or the value of the field if it is more than 1:
if(${field} < 1, null, ${field})
Combining AND and OR Operators
AND operators are evaluated before OR operators, if you don't otherwise specify the order with parentheses. Thus, the following expression without additional parentheses:
if (
${order_items.days_to_process}>=4 OR
${order_items.shipping_time}>5 AND
${order_facts.is_first_purchase},
"review", "okay")
would be evaluated as:
if (
${order_items.days_to_process}>=4 OR
(${order_items.shipping_time}>5 AND ${order_facts.is_first_purchase}),
"review", "okay")
Filter Functions for Custom Filters and Custom Fields
Filter functions let you work with filter expressions to return values based on filtered data. Filter functions work in custom filters, filters on custom measures, and custom dimensions, but are not valid in table calculations.
|
Function |
Syntax |
Purpose |
|---|---|---|
|
matches_filter |
|
Returns |