runtime
116 / 139

task Running totals · hard

Carry the last good reading forward

For devices 1–10, return reading_id, device_id, recorded_at, value and filled_value: value when known, otherwise the device’s most recent earlier known value (by recorded_at, reading_id). Leading NULLs stay NULL.

what to return

Columns
reading_iddevice_idrecorded_atvaluefilled_value in this order
Rows
13101 rows · any order
Skill
Fill gaps in a series with the last known value. Refresher: FIRST_VALUE, LAST_VALUE & frames →

expected result

Your query should return exactly these columns and values. Run it and compare.

expected result13101 rows · any order
reading_iddevice_idrecorded_atvaluefilled_value
5912025-03-01 00:38:004.154.15
16412025-03-01 01:38:003.193.19
27112025-03-01 02:38:003.43.4

first 3 of 13101 rows

data you can query

IoT / Sensors dataset: the first 6 rows of each table. Under each column name: the kind of value it holds, and which table it links to. Your queries run on all rows.

sensor_readings10 columns · 150,425 rows
reading_idnumber · unique iddevice_idnumber · links to devicessequence_numbernumberrecorded_atdate & timereceived_atdate & timevaluedecimalbattery_pctnumbergateway_idnumbersignal_rssi_dbmnumberquality_flagtext
117164582025-03-01 00:00:002025-03-01 00:00:1218.38NULLNULLNULLok
27252302025-03-01 00:00:002025-03-01 00:00:425.226722-81ok
3169568562025-03-01 00:02:002025-03-01 00:02:5340.03NULLNULLNULLok
412509472025-03-01 00:03:002025-03-01 00:03:1736.84NULLNULLNULLok
534503572025-03-01 00:02:002025-03-01 00:03:1740.22NULLNULLNULLok
6123324172025-03-01 00:03:002025-03-01 00:03:3238.37NULLNULLNULLok
reading_idnumber · unique id
1
device_idnumber · links to devices
17
sequence_numbernumber
16458
recorded_atdate & time
2025-03-01 00:00:00
received_atdate & time
2025-03-01 00:00:12
valuedecimal
18.38
battery_pctnumber
NULL
gateway_idnumber
NULL
signal_rssi_dbmnumber
NULL
quality_flagtext
ok
reading_idnumber · unique id
2
device_idnumber · links to devices
7
sequence_numbernumber
25230
recorded_atdate & time
2025-03-01 00:00:00
received_atdate & time
2025-03-01 00:00:42
valuedecimal
5.22
battery_pctnumber
67
gateway_idnumber
22
signal_rssi_dbmnumber
-81
quality_flagtext
ok
reading_idnumber · unique id
3
device_idnumber · links to devices
169
sequence_numbernumber
56856
recorded_atdate & time
2025-03-01 00:02:00
received_atdate & time
2025-03-01 00:02:53
valuedecimal
40.03
battery_pctnumber
NULL
gateway_idnumber
NULL
signal_rssi_dbmnumber
NULL
quality_flagtext
ok
reading_idnumber · unique id
4
device_idnumber · links to devices
12
sequence_numbernumber
50947
recorded_atdate & time
2025-03-01 00:03:00
received_atdate & time
2025-03-01 00:03:17
valuedecimal
36.84
battery_pctnumber
NULL
gateway_idnumber
NULL
signal_rssi_dbmnumber
NULL
quality_flagtext
ok
reading_idnumber · unique id
5
device_idnumber · links to devices
34
sequence_numbernumber
50357
recorded_atdate & time
2025-03-01 00:02:00
received_atdate & time
2025-03-01 00:03:17
valuedecimal
40.22
battery_pctnumber
NULL
gateway_idnumber
NULL
signal_rssi_dbmnumber
NULL
quality_flagtext
ok
reading_idnumber · unique id
6
device_idnumber · links to devices
123
sequence_numbernumber
32417
recorded_atdate & time
2025-03-01 00:03:00
received_atdate & time
2025-03-01 00:03:32
valuedecimal
38.37
battery_pctnumber
NULL
gateway_idnumber
NULL
signal_rssi_dbmnumber
NULL
quality_flagtext
ok

first 6 of 150,425 rows · your queries use all of them

solution.sql
 

Hints and the answer are always available. Using them counts the question as solved with help.

Carry the last good reading forward — SQL practice · Runtime