Ho una semplice tabella SQLite che registra il consumo di energia per tutto il giorno. Sembra che:Come costruire una cronologia giornaliera da un insieme di righe in SQL?
rowid amrid timestamp value
---------- ---------- ---------- ----------
1 1 1372434068 5720
2 2 1372434075 0
3 3 1372434075 90
4 1 1372434078 5800
5 2 1372434085 0
6 3 1372434085 95
Vorrei costruire una storia semplificata del consumo dell'ultimo giorno ottenendo il valore più vicino per ogni 10 minuti per costruire un file CSV, che sarebbe simile:
date value
---------------- ----------
2013-07-01 00:00 90
2013-07-01 00:10 100
2013-07-01 00:20 145
Come per ora ho una richiesta che mi permette di ottenere il valore più vicino per un timestamp:
SELECT *
FROM indexes
WHERE amrid=3
ORDER BY ABS(timestamp - strftime('%s','2013-07-01 00:20:00'))
LIMIT 1;
Come posso costruire una richiesta che avrebbe fatto il trucco per farlo per tutta la giornata? Grazie,
Typo verso la fine della linea 6? Dovrebbe finire '... 1, 14)'? – nurdglaw
Mille grazie, la tua idea funziona alla grande. Ecco la mia dichiarazione finale: 'select substr (strftime ('% Y-% m-% d% H:% M', timestamp, 'unixepoch'), 1, 15) || '0' come data, \t valore da indici i join (selezionare substr (strftime ('% Y% m% d% H% M', timestamp, 'unixepoch'), 1, 11) come yyyymmddhhm, min (rowid) come whichid dagli indici dove amrid = 1 e data (timestamp, 'unixepoch') = '2013-07-01' gruppo per substr (strftime ('% Y% m% d% H% M' , timestamp, 'unixepoch'), 1, 11) ) isum su i.rowid = isum.whichid; ' –