"Lowest" is assigned when the growth rate is equal to 0. "Highest" is assigned when the growth rate is equal to the maximum growth rate in the dataset. "Intermediate" is not assigned a label and remains the default label for all other cases.
The coding is
if([New member growth rate (%)] == 0, "Lowest", if([New member growth rate (%)] == max([New member growth rate (%)]), "Highest", "Intermediate"))
the result that suppose to be Intermediate but it all show the result as Highest//
Find out what is the error in the syntax
while your expression is syntactically correct, you misinterpret the result of the
max()function. It is returning the maximum value of all arguments - in your case you are just giving it the current value of the attribute[New member growth rate (%)]. Since this is equal to itself, the result of theif()is alwaysHighest.Generate Attributes works row-wise, so if you mean to get the maximum value for all different values of one attribute, you have to calculate that beforehand as an additional attribute, so you are able to reference that in your Generate Attributes expression:
Have a look at this example process to see the actual setup including parameters and expressions: