Filling in blanks, based on next value
I have a dataset in which a User ID will be identified during a session.... and then later change User IDs... and in between, there are rows of data in which the User ID is not identified - but I want to fill in those gaps with the next User ID that is identified during that session...
Row -- Session ID -- User ID -- Timestamp
001 -- 123 -- Null -- 10000...
002 -- 123 -- Null -- 10002...
003 -- 123 -- ABC -- 10004...
004 -- 987 -- Null -- 10006...
005 -- 123 -- Null -- 10005...
006 -- 123 -- DEF -- 10007....
007 -- 987 -- XYZ -- 10009...
I would want User ID value in rows 001 and 002 populated with 'ABC'
I would want User ID value in row 005 populated with 'DEF'
I would want User ID value in row 004 populated with 'XYZ'
Can anyone advise on how I can do this?
Answers
-
SELECT *, CASE WHEN `userID` IS NULL THEN (SELECT DISTINCT `userID` FROM `your_table` WHERE (`sessionID`=T.`sessionID`) AND (`userID` IS NOT NULL)) ELSE `userID` END AS "new_UserID" FROM `your_table` T
If I understood correctly, this should work.
Hope it helps!
0
Categories
- 10.6K All Categories
- 1 APAC User Group
- 12 Welcome
- 36 Domo News
- 9.6K Using Domo
- 1.9K Dataflows
- 2.4K Card Building
- 2.2K Ideas Exchange
- 1.2K Connectors
- 339 Workbench
- 252 Domo Best Practices
- 11 Domo Certification
- 461 Domo Developer
- 47 Domo Everywhere
- 100 Apps
- 703 New to Domo
- 84 Dojo
- Domopalooza
- 1.1K 日本支部
- 4 道場-日本支部へようこそ
- 22 お知らせ
- 63 Kowaza
- 296 仲間に相談
- 649 ひらめき共有