For more advanced calculations, you can use SQL custom expressions. These expressions are helpful when the aggregation results for a billable metric require complex calculations.
name
and code
for the billable metric;Custom expressions
as the aggregation option instead of Unique field
;Create a custom expression for a billable metric
COUNT
.CONCAT(event.properties.user_id, '-', event.properties.app_id)
(event.properties.cpu_number * 25 * event.properties.duration_msec) + (event.properties.memory_mb * 0.000001 * event.properties.duration_msec)
ROUND(event.properties.duration_msec * 1000)
event.code
(event code)event.timestamp
(event timestamp)event.properties.[property_name]
(event property)event.properties.my_property
is a valid event attribute.
123
(integer)123.45
(decimal)'Hello, world!'
(string)+
(addition)-
(subtraction)*
(multiplication)/
(division)-12
)CONCAT
CONCAT
function is used to concatenate two or more strings.
str1
: The first string to concatenatestr2
: The second string to concatenatestrs
: (Optional) Additional strings to concatenate.CONCAT(event.properties.user_id, '-', event.properties.app_id)
ROUND
ROUND
function is used to round a number to a specified number of decimal places.
value
: The number to roundprecision
: (Optional) Number of decimal places. Defaults to 0
.ROUND(14.2355)
returns 14
ROUND(14.2355, 0)
returns 14
ROUND(14.2355, 2)
returns 14.24
ROUND(14.2355, -1)
returns 10
FLOOR
FLOOR
function is used to round a number down to the nearest integer.
value
: The number to roundprecision
: (Optional) Number of decimal places. Defaults to 0
.FLOOR(16.2365)
returns 16
FLOOR(16.2365, 0)
returns 16
FLOOR(16.2365, 2)
returns 16.23
FLOOR(16.2365, -1)
returns 10
CEIL
CEIL
function is used to round a number up to the nearest integer.
value
: The number to roundprecision
: (Optional) Number of decimal places. Defaults to 0
.CEIL(14.2345)
returns 15
CEIL(14.2345, 0)
returns 15
CEIL(14.2345, 2)
returns 14.24
CEIL(14.2345, -1)
returns 20
event.timestamp
. To reference a custom property sent with the event, the path is event.properties.your_field
.Test your custom expression