sqlite查询的Sum条目

时间:2015-04-08 21:14:30

标签: sql sqlite datetime sum

我有一张类似的表:

| id(INTEGER) | id2(INTEGER) |    time(DATETIME)    | value(REAL) |
|-------------|--------------|----------------------|-------------|
|     1       |      2000    |  2004-01-01 00:00:00 |    1000     |

我用visual basic查询。现在我想总结2004年到2010年之间的所有条目,结果如下:

2004 11,000
2005 35,000
2006 46,000

如果我在视觉基础上这样做,很少有循环实现,但不幸的是,这不是很有效。

是否可以创建一个查询,该查询产生两年之间的结果。或两个月(一年内),按月,日(一个月),小时(一天内),分钟(一小时内)分组?

编辑: 查询年份间隔:

SELECT STRFTIME('%Y', time) AS year, SUM(value) AS cumsum FROM mytable WHERE year >= STRFTIME('%Y','2005-01-01 00:00:00') AND year <= STRFTIME('%Y','2010-01-01 00:00:00') GROUP BY STRFTIME('%Y', mytable.time)  ORDER BY year;

现在需要几个月,几天和几个小时的想法。

2 个答案:

答案 0 :(得分:2)

这是一个聚合查询,但您需要从日期中提取年份:

select strftime('%Y', time) as yr, sum(value)
from table
group by strftime('%Y', time)
order by yr;

答案 1 :(得分:1)

嗨下面是sql和sqlite的代码。我们可以按时间分组,而不是再次使用strftime函数。

<强> SQLITE: 选择strftime(&#39;%Y&#39;, 时间)作为年份,总和(价值)值 来自参加小组的时间

<强> SQL: 选择EXTRACT(YEAR FROM time)作为年份,sum(value)值 来自时间的分组