Creating Buckets in Beast Mode

Reply
Highlighted
White Belt

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?


Accepted Solutions
Highlighted
Major Red Belt

Re: Creating Buckets in Beast Mode

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'


Jae Wilson
Check out my Domo Training YouTube Channel

**Say "Thanks" by clicking the heart in the post that helped you.
**Please mark the post that solves your problem by clicking on "Accept as Solution"

View solution in original post

Highlighted
Black Belt

Re: Creating Buckets in Beast Mode

@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



**Make sure to like any users posts that helped you and accept the ones who solved your issue.**

View solution in original post


All Replies
Highlighted
Major Red Belt

Re: Creating Buckets in Beast Mode

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'


Jae Wilson
Check out my Domo Training YouTube Channel

**Say "Thanks" by clicking the heart in the post that helped you.
**Please mark the post that solves your problem by clicking on "Accept as Solution"

View solution in original post

Highlighted
Black Belt

Re: Creating Buckets in Beast Mode

@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



**Make sure to like any users posts that helped you and accept the ones who solved your issue.**

View solution in original post

Highlighted
White Belt

Re: Creating Buckets in Beast Mode

The values were coming in as a string but I figured it out! 

Thanks for all the help!

Announcements
Stand out in the Dojo: Choose your own recognizable username and add a unique profile photo in your profile settings.