Thank you. To make thing easier I would expect linear extrapolation between missing dates. So fare I have written this SELECT (example data included) <https://petr.maxbox.cz/index.php/2019/08/08/sqlite-select-for-power-consumption/?preview=true> (I am not sure how to format the code properly here in the mailing list, so I did put it on the web.
On Thu, Aug 8, 2019 at 10:21 AM Hick Gunter <h...@scigames.at> wrote: > I see two subproblems in this query > > a) estimating total electricity consumption for points in time that do not > have an entry > b) generating regular points in time > > ad a) assume a linear consumption of power between two measurements > > So for a time tx that is between ta and tb with values of pa and pb > respectively, px = pa + (tx -ta) * (pb -pa) / (tb - ta) > > You only need to extrapolate if you have a point in time that has > measurements only on one side. And you have to decide which average > consumption to use (daily/weekly/monthly/seasonal/yearly average) for > extrapolation. > > tx < ta : px = pa + (ta -tx) * (pb -pa) / (tb -ta) > tx > tb: px = pb + (tx -tb) * (pb -pa) / (tb -ta) > > ad b) generate regular points in time > > Use a recursive CTE or the sequence generator eponymous table for current > day = (starting day + sequence number * 1 day) > > Then join your extrapolation query to your time sequence generator for the > results > > Once you have accumulated enough mesurements, you could do a fourier > analysis to quantify daily/weekly/yearly variations and a "base load" > > -----Ursprüngliche Nachricht----- > Von: sqlite-users [mailto:sqlite-users-boun...@mailinglists.sqlite.org] > Im Auftrag von Petr Jakeš > Gesendet: Donnerstag, 08. August 2019 09:36 > An: sqlite-users@mailinglists.sqlite.org > Betreff: [EXTERNAL] [sqlite] select for power-meter accumulated total > readings > > I am storing electricity consumption data to the sqlite. > > The simple table to store kWh consumption looks like following example > (accumulated total readings in each row - exactly as you see on your > electricity meter): > > |ID|timestamp |kWh ||1 | 2019-07-31 14:24:25 | 270.8||2 | > 2019-07-31 14:31:02 | 272.1||3 | 2019-08-01 06:56:45 | 382.5||4 | > 2019-08-01 16:29:01 | 382.5||5 | 2019-08-01 20:32:53 | 582.5||6 | > 2019-08-02 16:18:14 | 612.1| > |7 | 2019-08-08 07:13:04 | 802.7| > |..|.....................|......| > > > - The data interval is not predictable (is random). > - There can be a day with no records at all (if data transmission > failure for example). > - There can be many records with the identical (equal) power consumption > (no energy consumption) for one or more days. > > My question is how to write SQL select to get energy consumption for > required interval summarized by days, weeks or months ... > > The real challenge is to get an average if for each day for days when > records were not taken (in the example table days between ID 6 and ID7) - > each day as a row. > > It looks like simple question but I am pulling out my hair for two days to > find a solution. > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > > > ___________________________________________ > Gunter Hick | Software Engineer | Scientific Games International GmbH | > Klitschgasse 2-4, A-1130 Vienna | FN 157284 a, HG Wien, DVR: 0430013 | (O) > +43 1 80100 - 0 > > May be privileged. May be confidential. Please delete if not the addressee. > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users