Subtracting Dates Based on Other columns

I currently have a data set that looks something like this:
I want do compute a Date Diff for orders from the same account between orders 1 and 2.
So-- find accounts that have the same number in column A
Determine which two orders (rows) to pick, based on column B
Subtract the corresponding dates in column C
Example: Find Account A123-- subtract it's first order date from its second: 03/04/2021- 01/01/2021 and tell me how many days have passed.
How can I do this? Even better-- how can I do this in an ETL or BeastMode?
Thanks!
Answers
-
Hi @user027926, you'll need a combination of window and date diff functions in order to calculate the difference between the two dates. You will need to ask your Customer Success Manager to "enable window functions in beast modes" in order to make use of this.
A bit of food for thought also, doing something like (CASE when 'Order' = 2 then 'Date Ordered' END) - (CASE when 'Order' = 1 then 'Date Ordered' END) won't work as beast modes are calculated on a row basis. With this beast, either there will be values from Order 1 or 2 but won't have both captured. As a result, you'll have a value and NULL per row and also subtracting null from anything will give null, resulting in a blank output.
9 -
I find it is easiest to do this in Magic ETL utilizing the Rank & Window tile. Choose the Lag function and then choose order date asc and partition by your account number and order number. This will put the previous order date (when there is one) next to the next order. You can then use the formula tile and the datediff function to find the difference between the two dates. Here's a link to the KB article for Rank & Window.
https://domohelp.domo.com/hc/en-us/articles/360044876094-New-Magic-ETL-Tiles-Aggregate#3.
**Check out my Domo Tips & Tricks Videos
**Make sure toany users posts that helped you.
**Please mark as accepted the ones who solved your issue.3 -
Here's a Beast Mode that is doing what @amehdad is describing:
DATEDIFF(LEAD(MIN(`Date Ordered`)) OVER (PARTITION BY `Account Number` ORDER BY `Which Order Number is this`), `Date Ordered`)
This will calculate the difference between each order based on each customer.
**Was this post helpful? Click Agree or Like below**
**Did this solve your problem? Accept it as a solution!**2
Categories
- All Categories
- 2K Product Ideas
- 2K Ideas Exchange
- 1.6K Connect
- 1.3K Connectors
- 308 Workbench
- 7 Cloud Amplifier
- 10 Federated
- 3.8K Transform
- 660 Datasets
- 117 SQL DataFlows
- 2.2K Magic ETL
- 818 Beast Mode
- 3.3K Visualize
- 2.5K Charting
- 84 App Studio
- 46 Variables
- 781 Automate
- 191 Apps
- 483 APIs & Domo Developer
- 84 Workflows
- 23 Code Engine
- 43 AI and Machine Learning
- 22 AI Chat
- 3 AI Projects and Models
- 18 Jupyter Workspaces
- 408 Distribute
- 116 Domo Everywhere
- 281 Scheduled Reports
- 11 Software Integrations
- 146 Manage
- 142 Governance & Security
- 8 Domo Community Gallery
- 49 Product Releases
- 13 Domo University
- 5.4K Community Forums
- 41 Getting Started
- 31 Community Member Introductions
- 115 Community Announcements
- 4.8K Archive