Running time intervals based off of an identifier
Howdy! I'm trying to work in a view of a dataset that records actions taken on a work ticket. I'd like to add a column that shows the difference in time between two rows of data, depending on if they share the same ticket ID or not. I'm using the timestamp format for the datetime of the action and when I copy and paste it, it looks like this: 2024-11-18T05:43:34. Could someone assist me in figuring out the beast mode to add this is a column, or maybe suggest an approach to get this information another way?
Ticket Number | Action Time |
---|---|
303839 | 2024-11-18T05:43:34 |
303839 | 2024-11-18T05:43:32 |
303839 | 2024-11-18T05:39:52 |
303838 | 2024-11-18T04:49:11 |
303838 | 2024-11-18T04:49:10 |
303838 | 2024-11-18T04:49:10 |
303838 | 2024-11-18T04:49:10 |
303838 | 2024-11-18T04:48:51 |
303837 | 2024-11-18T04:47:56 |
303837 | 2024-11-18T04:47:56 |
303837 | 2024-11-18T04:47:56 |
303837 | 2024-11-18T04:47:53 |
303837 | 2024-11-18T04:47:36 |
Best Answer
-
You can use a window function to do a lag
LAG(`Action Time`) OVER (PARTITION BY `Ticket Number` ORDER BY `Action Time`)
This can also be calculated using a Rank and Window tile in a Magic ETL
Then taking that you can calculate the time difference:
SEC_TO_TIME(UNIX_TIMESTAMP(`Action Time`) - UNIX_TIMESTAMP(`Prior Action Time`))
UNIX_TIMESTAMP will convert the timestamp to the number of seconds since 1970-01-01. Subtracting the two gives the number of seconds. SEC_TO_TIME converts the number of seconds to a human-readable format of hours, minutes, and seconds.
**Was this post helpful? Click Agree or Like below**
**Did this solve your problem? Accept it as a solution!**1
Answers
-
You can use a window function to do a lag
LAG(`Action Time`) OVER (PARTITION BY `Ticket Number` ORDER BY `Action Time`)
This can also be calculated using a Rank and Window tile in a Magic ETL
Then taking that you can calculate the time difference:
SEC_TO_TIME(UNIX_TIMESTAMP(`Action Time`) - UNIX_TIMESTAMP(`Prior Action Time`))
UNIX_TIMESTAMP will convert the timestamp to the number of seconds since 1970-01-01. Subtracting the two gives the number of seconds. SEC_TO_TIME converts the number of seconds to a human-readable format of hours, minutes, and seconds.
**Was this post helpful? Click Agree or Like below**
**Did this solve your problem? Accept it as a solution!**1
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