Status Changes in Log Data
Problem statement
Each row in status_logs records the status of one entity at an event time.
Within each entity, order logs by event_time and then log_id. Return every noninitial row whose status differs from the immediately preceding row for that entity.
Include both the previous and current status for each transition.
Table schema
MySQLPostgreSQLPandas
Use the same input data with any supported language. Open the Schema tab in the editor to see the generated SQL setup or Pandas DataFrames.
status_logs
| Column | Type | Nullable | Description |
|---|---|---|---|
| log_idPK | Integer | No | — |
| entity_id | Integer | No | — |
| event_time | Timestamp | No | — |
| status | Text | No | — |
Expected result
Your query or function must return these columns.
| Column | Type | Nullable | Description |
|---|---|---|---|
| log_id | Integer | No | — |
| entity_id | Integer | No | — |
| event_time | Timestamp | No | — |
| previous_status | Text | No | — |
| current_status | Text | No | — |
Row order: must match exactly. Numeric tolerance: 0.
Constraints
log_idis unique.- Status comparisons are exact and case-sensitive.
- Rows with the same
event_timeare ordered bylog_id. - The first row for an entity is not a status change.
- Sort by
entity_id,event_time, andlog_idascending.