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.9K Product Ideas
- 1.9K Ideas Exchange
- 1.6K Connect
- 1.3K Connectors
- 302 Workbench
- 6 Cloud Amplifier
- 9 Federated
- 2.9K Transform
- 104 SQL DataFlows
- 637 Datasets
- 2.2K Magic ETL
- 3.9K Visualize
- 2.5K Charting
- 761 Beast Mode
- 65 App Studio
- 42 Variables
- 703 Automate
- 182 Apps
- 458 APIs & Domo Developer
- 53 Workflows
- 10 DomoAI
- 39 Predict
- 16 Jupyter Workspaces
- 23 R & Python Tiles
- 401 Distribute
- 116 Domo Everywhere
- 277 Scheduled Reports
- 8 Software Integrations
- 132 Manage
- 129 Governance & Security
- 8 Domo Community Gallery
- 38 Product Releases
- 12 Domo University
- 5.4K Community Forums
- 40 Getting Started
- 30 Community Member Introductions
- 111 Community Announcements
- 4.8K Archive