Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Sqlite中获取每个月的第一个和最后一个记录_Java_Sqlite - Fatal编程技术网

Java 如何在Sqlite中获取每个月的第一个和最后一个记录

Java 如何在Sqlite中获取每个月的第一个和最后一个记录,java,sqlite,Java,Sqlite,在我的java应用程序中,我将烛台数据存储在sqlite数据库中,我是sqlite语言的新手。该数据库为每个股票包含一个表,其中包含以下列:日期、打开、高、低、关闭。 为了显示每月蜡烛,我需要一个结果集来存储每个月的第一个和最后一个值,最大值为高,最小值为低。 我能够通过以下方式检索最后两个数据: SELECT STRFTIME("%Y-%m", date/1000,'unixepoch', 'localtime') AS Date, max(high) AS High, min(low) AS

在我的java应用程序中,我将烛台数据存储在sqlite数据库中,我是sqlite语言的新手。该数据库为每个股票包含一个表,其中包含以下列:日期、打开、高、低、关闭。 为了显示每月蜡烛,我需要一个结果集来存储每个月的第一个和最后一个值,最大值为高,最小值为低。 我能够通过以下方式检索最后两个数据:

SELECT STRFTIME("%Y-%m", date/1000,'unixepoch', 'localtime') AS Date, max(high) AS High, min(low) AS Low
对于第一个需要的数据,我尝试访问记录:

where strftime('%m', date/1000, 'unixepoch', 'localtime')<>strftime('%m', date/1000, 'unixepoch', 'localtime','+1 day')

每个月的第一个和最后一个记录是具有最小/最大日期值的记录:

选择strftime…,MINdate/1000。。。作为第一次约会, strftime…,MAXdate/1000。。。作为最后一天, ... 来自SP_500 按strftime“%Y-%m”、日期/1000等分组。。。; 要获取相应的值,需要子查询:

选择打开 来自SP_500 AS T 式中,T.date=MINSP_500.date 月初,, 选择关闭 来自SP_500 AS T 其中T.date=MAXSP_500.date 随着月底的临近, ... 来自SP_500 按strftime“%Y-%m”、日期/1000等分组。。。;
不是每个月都有一组失踪吗?显示整个查询。是的,但命令:GROUP BY STRFTIME%Y-%m,data/1000,'unixepoch',localtime'不提供第一次打开和最后一次关闭显示整个查询。查询每个月的最后一次关闭:选择STRFTIME'%Y-%m-%d',data/1000,'unixepoch',localtime'作为数据,从SP_500关闭,其中STRFTIME'%m',data/1000,'UNIXEPOCOCH','localtime'strftime'%m',data/1000',unixepoch','localtime','+1天'顺序按数据描述组按strftime%Y-%m,data/1000,'unixepoch','localtime'谢谢,这是我搜索的日期。但是现在我如何子查询相对值呢?我的意思是:现在我有了“开盘日期、高点、低点、收盘日期”这样的行。如何将“打开日期”和“关闭日期”转换为打开和关闭时的值?我的实际代码是:选择strftime“%Y-%m-%d”,MAXdata/1000,“unixepoch”,“localtime”作为数据,strftime“%Y-%m-%d”,MINdata/1000,“unixepoch”,“localtime”作为打开,maxhigh作为高,minlow作为低,strftime“%Y-%m-%d”,MAXdata/1000,“unixepoch”,“localtime”作为关闭,它现在可以在每个子查询中添加分组。谢谢
    SELECT strftime('%Y-%m-%d', data/1000, 'unixepoch', 'localtime') AS data, close from SP_500 where strftime('%m', data/1000, 'unixepoch', 'localtime')<>strftime('%m', data/1000, 'unixepoch', 'localtime','+1 day') order by data desc
GROUP BY STRFTIME("%Y-%m", data/1000,'unixepoch', 'localtime')
SELECT strftime('%Y-%m-%d', max(data) / 1000, 'unixepoch', 'localtime') as data,
       (SELECT open
        FROM SP_500 AS T
        WHERE T.data = MIN(SP_500.data)
        GROUP BY strftime('%Y-%m', T.data / 1000, 'unixepoch', 'localtime')
       ) AS month_open,
       max(high) AS month_high,
       min(low) AS month_low,
       (SELECT close
       FROM SP_500 AS T
       WHERE T.data = MAX(SP_500.data)
       GROUP BY strftime('%Y-%m', T.data / 1000, 'unixepoch', 'localtime')  
       ) AS month_close
FROM SP_500
GROUP BY strftime('%Y-%m', data / 1000, 'unixepoch', 'localtime')
ORDER BY data DESC