Group By
Anyone knows of a way to GROUP BY in Beast Mode Editor?
we can do PARTITIONING but somehow, we can't do GROUP BY?
For example:
case when 'location'='ATL' then sum((amount)*10) else sum(amount) over (partition by 'Location') end
the above works perfect
BUT below doesn't. what am I doing wrong here?
case when 'location'='ATL' then sum((amount)*10) else sum(amount) group by 'Location' end
Best Answers
-
@carthur You don't actually need a GROUP BY clause in beast mode the same way that you would in SQL because your beast mode should group by whatever dimension is used in your card. If I'm interpreting your examples correctly, you are trying to sum the amount column for all locations and multiply the amount for ATL by 10. In that case your beast mode should looks like this:
sum(case when `location` = 'ATL' then `amount` * 10 else `amount` end)
In general, it's better to put case statements inside aggregate functions instead of the other way around since that often results in granularity issues.
0 -
To add some additional context the first one works because it will return a singular value from your window function so any aggregation on your card will work on that field but can cause some issues depending on your sorting and grouping and other aggregation that's being performed on the card when it's displayed.
The second is trying to evaluate the single row's value but also then attempting to aggregate your value. As @MichelleH mentioned it's best to put your case statement inside the aggregation so that it will evaluate all of the rows first and then do your aggregation.
**Was this post helpful? Click Agree or Like below**
**Did this solve your problem? Accept it as a solution!**0
Answers
-
@carthur You don't actually need a GROUP BY clause in beast mode the same way that you would in SQL because your beast mode should group by whatever dimension is used in your card. If I'm interpreting your examples correctly, you are trying to sum the amount column for all locations and multiply the amount for ATL by 10. In that case your beast mode should looks like this:
sum(case when `location` = 'ATL' then `amount` * 10 else `amount` end)
In general, it's better to put case statements inside aggregate functions instead of the other way around since that often results in granularity issues.
0 -
To add some additional context the first one works because it will return a singular value from your window function so any aggregation on your card will work on that field but can cause some issues depending on your sorting and grouping and other aggregation that's being performed on the card when it's displayed.
The second is trying to evaluate the single row's value but also then attempting to aggregate your value. As @MichelleH mentioned it's best to put your case statement inside the aggregation so that it will evaluate all of the rows first and then do your aggregation.
**Was this post helpful? Click Agree or Like below**
**Did this solve your problem? Accept it as a solution!**0
Categories
- All Categories
- 1.8K Product Ideas
- 1.8K Ideas Exchange
- 1.5K Connect
- 1.2K Connectors
- 300 Workbench
- 6 Cloud Amplifier
- 8 Federated
- 2.9K Transform
- 100 SQL DataFlows
- 616 Datasets
- 2.2K Magic ETL
- 3.8K Visualize
- 2.5K Charting
- 738 Beast Mode
- 56 App Studio
- 40 Variables
- 684 Automate
- 176 Apps
- 452 APIs & Domo Developer
- 46 Workflows
- 10 DomoAI
- 35 Predict
- 14 Jupyter Workspaces
- 21 R & Python Tiles
- 394 Distribute
- 113 Domo Everywhere
- 275 Scheduled Reports
- 6 Software Integrations
- 123 Manage
- 120 Governance & Security
- 8 Domo Community Gallery
- 38 Product Releases
- 10 Domo University
- 5.4K Community Forums
- 40 Getting Started
- 30 Community Member Introductions
- 108 Community Announcements
- 4.8K Archive