When creating percentage measures, it is often useful to make sure you are not dividing by zero in the percentage calculation. This can be done through the SQL function NULLIF(expression_1, expression_2).
NULLIF takes two inputs. If the two expressions are equal, NULLIF returns a NULL. If the two expressions are not equal, NULLIF returns the value of the first expression.
So, in order to avoid dividing by zero in a dimension, we might use NULLIF(${field_name}, 0). This means “if ${field_name} is 0, give me a NULL, otherwise give me ${field_name}”.
Here is an example of a percentage measure using NULLIF:
- measure: percent_sold
type: number
format: "%.2f%"
sql: 100.0 * ${sold_count} / NULLIF(${count}, 0)