Tableau formula Conversion to domo question

Reply
Highlighted
Yellow Belt

Tableau formula Conversion to domo question

Hey all, I am trying to create a formulas in my ETL but keeps giving a syntex error. 

I'm trying to translate this tableau formula:

if ([Prior 5 Days Avg]) > 0 and sum([Current Day]) > 0 Then

(sum([Current Day]) - ([Prior 5 Days Avg]))/([Prior 5 Days Avg])

elseif sum([Current Day]) = 0 then -.99

else .99

end

 

Into a DOMO formula: 

CASE

WHEN (`Average 5 Day Usage`) > 0 AND SUM(`Current Day Usage *`) > 0

THEN (Sum(`Current Day Usage *`) - (`Average 5 Day Usage`))/(`Average 5 Day Usage`)

WHEN Sum(`Current Day Usage *`) = 0

THEN -0.99

ELSE 0.99

END

 

But DOMO does not seem to like my above formula. 

Any thoughts?


Accepted Solutions
Highlighted
Black Belt

@kacy i'm assuming you've created a dataset with 'current day' and average 5 day usage' as columns.  you can do that, but I'm not sure I'd recommend this approach because you'll have tons of limited use datasets that only work for one visualization, and eventually it'll become a nightmare to maintain.

 

but setting that aside, Domo is built on SQL.  So you have to convert your query into proper SQL syntax.

 

looks like you had an extra asterix.  if that asterix is intentional, take it out of your dataset, it's unwise to use characters that are reserved for math in column names.

 

WHEN (`Average 5 Day Usage`) > 0 AND SUM(`Current Day Usage *`) > 0

 

also you have a problem with your parenthesis / your understanding of aggregation.  you can't have half of your formula operate on a SUM and the other half without.

 

(Sum(`Current Day Usage *`) - (`Average 5 Day Usage`))/(`Average 5 Day Usage`)

 

you can't do this.  Sum(`Current Day Usage *`) this is an aggregation, which means all other columns referred to in your dataset must be aggregated as well.

 

EITHER

Sum((`Current Day Usage *` - `Average 5 Day Usage`)/ `Average 5 Day Usage`)

OR

(Sum(`Current Day Usage *`) - SUM(`Average 5 Day Usage`))/ sum( `Average 5 Day Usage`)

 

 


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


All Replies
Highlighted
Black Belt

@kacy i'm assuming you've created a dataset with 'current day' and average 5 day usage' as columns.  you can do that, but I'm not sure I'd recommend this approach because you'll have tons of limited use datasets that only work for one visualization, and eventually it'll become a nightmare to maintain.

 

but setting that aside, Domo is built on SQL.  So you have to convert your query into proper SQL syntax.

 

looks like you had an extra asterix.  if that asterix is intentional, take it out of your dataset, it's unwise to use characters that are reserved for math in column names.

 

WHEN (`Average 5 Day Usage`) > 0 AND SUM(`Current Day Usage *`) > 0

 

also you have a problem with your parenthesis / your understanding of aggregation.  you can't have half of your formula operate on a SUM and the other half without.

 

(Sum(`Current Day Usage *`) - (`Average 5 Day Usage`))/(`Average 5 Day Usage`)

 

you can't do this.  Sum(`Current Day Usage *`) this is an aggregation, which means all other columns referred to in your dataset must be aggregated as well.

 

EITHER

Sum((`Current Day Usage *` - `Average 5 Day Usage`)/ `Average 5 Day Usage`)

OR

(Sum(`Current Day Usage *`) - SUM(`Average 5 Day Usage`))/ sum( `Average 5 Day Usage`)

 

 


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
Yellow Belt

Thank you! Thanks for the explanation as well that was very helpful!

Announcements
Domopalooza 2021 Call for Presenters: We want to hear how Domo is revolutionizing the way you do business!

Click here to submit your story.