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
- 11K All Categories
- 5 Private Company Board
- 2 APAC User Group
- 12 Welcome
- 43 Domo News
- 10K Using Domo
- 2K Dataflows
- 2.5K Card Building
- 2.2K Ideas Exchange
- 1.2K Connectors
- 349 Workbench
- 267 Domo Best Practices
- 12 Domo Certification
- 474 Domo Developer
- 51 Domo Everywhere
- 111 Apps
- 728 New to Domo
- 85 Dojo
- Domopalooza
- 1.1K 日本支部
- 4 道場-日本支部へようこそ
- 31 お知らせ
- 65 Kowaza
- 303 仲間に相談
- 664 ひらめき共有