Prior month metrics beast mode
Hi,
I have a pivot table card which displays Last month projects, Projects 2 Months ago, Delta Projects.
Below are the Beast mode calculations:
Last Month Projects
COUNT(DISTINCT CASE WHEN YEAR(`Date`) = YEAR(CURRENT_DATE) AND MONTH(`Date`) = MONTH(CURRENT_DATE)-1 THEN `ProjectNo` END)
Projects 2 Months ago
COUNT(DISTINCT CASE WHEN YEAR(`Date`) = YEAR(CURRENT_DATE) AND MONTH(`Date`) = MONTH(CURRENT_DATE)-2 THEN ` ProjectNo` END)
Delta Projects
(COUNT(DISTINCT CASE WHEN YEAR(`Date`) = YEAR(CURRENT_DATE) AND MONTH(`Date`) = MONTH(CURRENT_DATE)-1 THEN `ProjectNo` END))-
(COUNT(DISTINCT CASE WHEN YEAR(`Date`) = YEAR(CURRENT_DATE) AND MONTH(`Date`) = MONTH(CURRENT_DATE)-2 THEN `ProjectNo` END))
Since we entered into a new year the pivot table shows 0 values for the above fields as the beast mode has YEAR(`Date`) = YEAR(CURRENT_DATE), if I remove YEAR(`Date`) = YEAR(CURRENT_DATE), it will select the years right from the beginning regardless of previous year. I want the card to choose previous year(2020), last month even when we are in current year 2021.
Please advise.
Thanks!
Best Answer
-
@Khan_Naziya ? i feel like i've suggested to you multiple times to build a date dimension table... you're not gonna love this answer ? build a date dimension table.
What you need is a YearMonth_Lag column that calculates the number of month's lag (0,1,2,3,4,5) from the current date. You calculate that with a Row_Num() Over ( Partition By YearMonth_Num OrderBy End_Of_Month desc)
make sure your window function updates daily.
Then you could simplify your beast mode to
CASE WHEN YearMonth_Lag = 0 -- current month
YearMonth_Lag = 1 = prev month
YearMonth_Lag = 12 = one year ago.
cc @GrantSmith
Jae Wilson
Check out my 🎥 Domo Training YouTube Channel 👨💻
**Say "Thanks" by clicking the ❤️ in the post that helped you.
**Please mark the post that solves your problem by clicking on "Accept as Solution"2
Answers
-
@Khan_Naziya ? i feel like i've suggested to you multiple times to build a date dimension table... you're not gonna love this answer ? build a date dimension table.
What you need is a YearMonth_Lag column that calculates the number of month's lag (0,1,2,3,4,5) from the current date. You calculate that with a Row_Num() Over ( Partition By YearMonth_Num OrderBy End_Of_Month desc)
make sure your window function updates daily.
Then you could simplify your beast mode to
CASE WHEN YearMonth_Lag = 0 -- current month
YearMonth_Lag = 1 = prev month
YearMonth_Lag = 12 = one year ago.
cc @GrantSmith
Jae Wilson
Check out my 🎥 Domo Training YouTube Channel 👨💻
**Say "Thanks" by clicking the ❤️ in the post that helped you.
**Please mark the post that solves your problem by clicking on "Accept as Solution"2
Categories
- All Categories
- 1.8K Product Ideas
- 1.8K Ideas Exchange
- 1.6K Connect
- 1.2K Connectors
- 300 Workbench
- 6 Cloud Amplifier
- 9 Federated
- 2.9K Transform
- 102 SQL DataFlows
- 626 Datasets
- 2.2K Magic ETL
- 3.9K Visualize
- 2.5K Charting
- 753 Beast Mode
- 61 App Studio
- 41 Variables
- 692 Automate
- 177 Apps
- 456 APIs & Domo Developer
- 49 Workflows
- 10 DomoAI
- 38 Predict
- 16 Jupyter Workspaces
- 22 R & Python Tiles
- 398 Distribute
- 115 Domo Everywhere
- 276 Scheduled Reports
- 7 Software Integrations
- 130 Manage
- 127 Governance & Security
- 8 Domo Community Gallery
- 38 Product Releases
- 11 Domo University
- 5.4K Community Forums
- 40 Getting Started
- 30 Community Member Introductions
- 110 Community Announcements
- 4.8K Archive