How to use partition by clause in Domo SQL

Reply
Highlighted
Green Belt

How to use partition by clause in Domo SQL

I have following columns:

 

Kingdom, 

Animal, 

Age, 

Weight

 

Each row can be repeated multiple times. I want to sum values on the kingdom level in another view/table:

 

My code is:

 

SELECT
'Kingdom',
SUM (MAX ('Age')) OVER (PARTITION BY 'Animal') AS 'Age',
SUM(MAX ('Weight')) OVER (PARTITION BY 'Animal') AS 'Weight'

FROM 'Table'
GROUP BY 'Kingdom'

The Domo transform does not work. Says "Whoops! Something went wrong"

 

Can someone help me as to how to make this work?

 

 

The 


Accepted Solutions
Black Belt

Re: How to use partition by clause in Domo SQL

Yes and no...

 

You can use windowed functions in a redshift dataflow.  But not in the standard MySQL dataflow option.

2020-01-13_13-03-38.png

 

 

If you aren't familiar with redshift, then you will need to study up on some of the differences because it uses some different syntax.


______________________________________________________________________________________________
“There is a superhero in all of us, we just need the courage to put on the cape.” -Superman
______________________________________________________________________________________________

View solution in original post


All Replies
Major Blue Belt

Re: How to use partition by clause in Domo SQL

Hi @hamza_123 ,

 

The query that you have written has a syntax error.

SUM (MAX ('Age')) OVER (PARTITION BY 'Animal') AS 'Age',
SUM(MAX ('Weight')) OVER (PARTITION BY 'Animal') AS 'Weight'

Aggregation of already aggregated column (SUM(COUNT)) can not be done this way.

Also, It would be great to check with Domo Support if MySQL flow currentlu supports windoe aggregation or not. I doubt it does not. Still it's advised to check with Domo.

Moreover, window aggregation is supported in beast modes calculation, so you can directly place your clculation in the cards' beast mode.

 

Hope this helps.

 

Regards

Aditya Jain

'Happy to Help'
Black Belt

Re: How to use partition by clause in Domo SQL

I would suggest the following steps in a SQL dataflow:

 

SELECT
`Kingdom`,
`Animal',
MAX(`Age`) as `Max Age`,
MAX(`Weight`) as `Max Weight`
FROM 'Table'
Group By 1,2

This will give you a table with:

Kingdom,

Animal,

Max Age,

Max Weight

 

Then you can get your desired output table:

SELECT
`Kingdom`,
SUM(`Max Age`) as `Age`,
SUM(`Max Weight`) as `Weight`
FROM 'Table_2'
Group By `Kingdom`

 


______________________________________________________________________________________________
“There is a superhero in all of us, we just need the courage to put on the cape.” -Superman
______________________________________________________________________________________________
Green Belt

Re: How to use partition by clause in Domo SQL

Thank you for the reply. So I'm guessing partitions do not work in Domo SQL?

 

Black Belt

Re: How to use partition by clause in Domo SQL

Yes and no...

 

You can use windowed functions in a redshift dataflow.  But not in the standard MySQL dataflow option.

2020-01-13_13-03-38.png

 

 

If you aren't familiar with redshift, then you will need to study up on some of the differences because it uses some different syntax.


______________________________________________________________________________________________
“There is a superhero in all of us, we just need the courage to put on the cape.” -Superman
______________________________________________________________________________________________

View solution in original post

Green Belt

Re: How to use partition by clause in Domo SQL

Thankyou for the reply. It is clear now. 

Announcements
Check out these great solution videos! The new iSolveditWithDomoboard is live, share yours and earn higher rankings in Dojo click here!