A non-JSON option you could try is:
CREATE TABLE TestData (
Channel,
Time,
Data, -- individual reading at Time for Channel
PRIMARY KEY (Channel,Time)
) WITHOUT ROWID
This is every reading sorted by a Primary Key that is Channel+Time. This makes looking up a specific channel in a specific Time Range fast.
BTW, you don't need to make an index on a Primary Key; there is already an implicit index .
You would select using something like:
SELECT (Time/60)*60, Avg(Data) FROM TestData
WHERE Channel=?
AND TIME BETWEEN ? AND 1717606846
GROUP BY Time/60