On 2011-11-24 08:02:21 +0000, Simon Slavin wrote:
> 
> On 24 Nov 2011, at 7:42am, Rafael Garcia Leiva wrote:
> 
> > CREATE TABLE eurusd (
> >    date   TEXT NOT NULL PRIMARY KEY,
> >    open   REAL NOT NULL,
> >    high   REAL NOT NULL,
> >    low    REAL NOT NULL,
> >    close  REAL NOT NULL
> > );
> > 
> > The granularity of the data is one minute, for example:
> > 
> > INSERT INTO eurusd (date, open, high, low, close) VALUES (
> >    '2011-11-01 00:01:00', '1.1212', '1.2323', '1.3434', '1.4545'
> > );
> > 
> > For the analysis of the data it is important to aggreate table rows using 
> > other timeframes. If I want to do analysis of data aggregated by months I 
> > can use the following query:
> > 
> > SELECT MAX(high) AS High, MIN(low) as Low,
> >    STRFTIME("%Y-%m-%d", date) as Date
> >    FROM eurusd GROUP BY STRFTIME("%Y-%m-%d", date);
> > 
> > In the same way I can aggregate the data by days and hours.
> > 
> > The problem is that I have to aggregate and analyze the data with other 
> > less conventional time frames, like 5 minutes, 15 minutes, or even 23 
> > minutes.
> 
> I recommend that you store the datestamp in a numeric form.  You can do 
> either keep your existing column and add a new one, writing the data to both 
> columns, or replace the existing text datestamp.
> 
> Two easy-to-convert formats would be Julian Day and Unix Epoch.  Julian Days 
> are floats where 1 = 1 dayr; Unix Epochs generated by SQLite are floats where 
> 1 = 1 second.  It appears that you're interested in sub-day units so the unix 
> format might be most useful for you.
> 
> See
> 
> <http://www.sqlite.org/lang_datefunc.html>
> 
> Your SELECT would be something like
> 
> SELECT MAX(high) AS High, MIN(low) as Low,
>    STRFTIME("%Y-%m-%d", date) as Date
>    FROM eurusd GROUP BY round(timestamp / 23 * 60)

I think it is the same as

SELECT MAX(high) AS High, MIN(low) as Low,
   STRFTIME('%Y-%m-%d',date) as Date
   FROM eurusd GROUP BY round(STRFTIME('%s',date) / (23 * 60))
> 
> Simon.
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to