0

我是一名 Android 程序员,我在我的应用程序中使用 SQLite(没有太多选择:))。我有一个表,其中包含一个 unix 时间戳字段。现在,如果我想对这个表中的某个字段求和,并按月分组,我只是这样做:

SELECT 月、年、sum(x) FROM GROUP BY 月、年

(当然,月份和年份是日期函数)。

但我想按非日历月对它进行分组,比如从一个月的 10 号到他之后的 10 号。

我对 SQL 有非常基本的了解,所以我不知道如何去做。有人告诉我我需要使用 PARTITION BY 但 SQLite 不支持它。我很确定有办法做到这一点。

提前致谢, 埃拉德

4

1 回答 1

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

您可以将年份和月份放在不同的列中。此示例将它们放在一列中。

于 2012-08-07T18:08:26.727 回答