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.7K Product Ideas
- 1.7K Ideas Exchange
- 1.5K Connect
- 1.2K Connectors
- 295 Workbench
- 6 Cloud Amplifier
- 8 Federated
- 2.8K Transform
- 97 SQL DataFlows
- 608 Datasets
- 2.1K Magic ETL
- 3.8K Visualize
- 2.4K Charting
- 709 Beast Mode
- 49 App Studio
- 39 Variables
- 667 Automate
- 170 Apps
- 446 APIs & Domo Developer
- 44 Workflows
- 7 DomoAI
- 33 Predict
- 13 Jupyter Workspaces
- 20 R & Python Tiles
- 391 Distribute
- 111 Domo Everywhere
- 274 Scheduled Reports
- 6 Software Integrations
- 115 Manage
- 112 Governance & Security
- Domo Community Gallery
- 31 Product Releases
- 9 Domo University
- 5.3K Community Forums
- 40 Getting Started
- 30 Community Member Introductions
- 103 Community Announcements
- 4.8K Archive