Creating Buckets in Beast Mode

Hello!

So I'm trying to create temperature buckets in beast mode. Here's my formula:

case
when (`temperature` >= '33' and `temperature` <= '39') then '30s'
when (`temperature` >= '40' and `temperature` <= '49') then '40s'
when (`temperature` >= '50' and `temperature` <= '59') then '50s'
when (`temperature` >= '60' and `temperature` <= '69') then '60s'
when (`temperature` >= '70' and `temperature` <= '79') then '70s'
when (`temperature` >= '80' and `temperature` <= '89') then '80s'
when (`temperature` >= '90' and `temperature` <= '99') then '90s'
when (`temperature` >= '100') then '100s'
else 'Freezing'
end

When I look at the different buckets, all temperatures that are greater or equal to 100 and all temperatures below freezing are all grouped in the '100s' bucket. Is there something wrong with my equation?

• Budapest / Portland, OR 🟤

Is `temperature` numeric or string?

'33' and 33 ARE NOT the same thing. '33' is a string whereas 33 is numeric.

I suspect you want

CASE when (`temperature` >= 33 and `temperature` <= 39) then '30s'

• Portland, Oregon 🔴

@jaeW_at_Onyx  is correct that your temperature must be a string value and needs to be converted to numeric. You can do this very easily in Magic ETL by adding a Set Column Type tile to your ETL.

Also, you can simplify your CASE statement since CASE statements exit out of the function once it finds a matching criteria. This means you could rewrite it like this:

```case
when `temperature` <= 32 then 'Freezing'
when `temperature` <= 39 then '30s'
when `temperature` <= 49 then '40s'
when `temperature` <= 59 then '50s'
when `temperature` <= 69 then '60s'
when `temperature` <= 79 then '70s'
when `temperature` <= 89 then '80s'
when `temperature` <= 99 then '90s'
else '100s'
end```