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
Highlighted
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
Highlighted
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'
Highlighted
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
______________________________________________________________________________________________
Highlighted
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?

 

Highlighted
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

Highlighted
Green Belt

Re: How to use partition by clause in Domo SQL

Thankyou for the reply. It is clear now. 

Announcements
Win free lodging at Domoapalooza! We want you to share you favorite Domo tips and tricks. Click here for more details!