D8LooPFocus modeCODE WORKSPACE
Return event_id, device, and campaign extracted from the payload JSON. Default a missing campaign to 'unknown'. Order by event_id.
json_extract(payload, '$.device') AS device; COALESCE(json_extract(payload, '$.campaign'), 'unknown') AS campaign.
Sample input
| event_id | payload |
|---|---|
| 1 | {"device":"ios","campaign":"winter"} |
| 3 | {"device":"web","campaign":"spring"} |
| 4 | {"device":"web","items":["SKU-C"]} |
| 6 | {"device":"ios"} |
Expected output
| event_id | device | campaign |
|---|---|---|
| 1 | ios | winter |
| 2 | ios | winter |
| 3 | web | spring |
| 4 | web | unknown |
| 5 | android | winter |
| 6 | ios | unknown |
Constraints
Use json_extract(payload, '$.device') and COALESCE(json_extract(payload, '$.campaign'), 'unknown'). Alias them device and campaign. Order by event_id.
Expected skills
JSON path extraction, aliasing, and defaulting missing keys with COALESCE.
Run the SQL query to inspect preview rows.