我是一名Android程序员,我在我的应用程序中使用SQLite(没有太多选择:))。 我有一个表,其中包含一个unix时间戳字段。现在,如果我想在这个表格中计算一些字段的总和,并按月分组,我只是这样做:
选择月,年,总和(x) 来自foo GROUP BY月,年
(当然月份和年份是日期函数)。
但是我想把它按非日历月分组,比如从一个月的10号开始到跟在他后面的第10个月。
我对SQL有一个非常基本的知识,所以我不知道如何做到这一点。 有人告诉我,我需要使用PARTITION BY,但SQLite不支持它。 我很确定有办法做到这一点。
提前致谢, ELAD
答案 0 :(得分:2)
要处理当月的十分之一,您可以从该日期开始减去10天:
select strftime("%y %m", tendaysbefore), <whatever>
from (select foo.*,
date(thedate, '-10 days') as tendaysbefore
from foo
) t
group by strftime("%Y-%m", tendaysbefore)
order by 1, 2
您可以将年份和月份放在单独的列中。这个例子将它们放在一列中。