在 sqlite 中按月分组

Posted

技术标签:

【中文标题】在 sqlite 中按月分组【英文标题】:group by month in sqlite 【发布时间】:2012-02-20 07:12:22 【问题描述】:

我有一张桌子,我对 groupby 月份没有什么问题

CREATE TABLE BabyData (BabyId INT, BabyName TEXT, _id INT PRIMARY KEY, Date DATE, Height TEXT, Weight TEXT);

从这张表中我想要一年中每个月的平均体重

当我提供日期为“2011-2-2”时,我想要每个月的平均体重 '2011-2-2' 到 '2012-2-2'

我是这样给的

SELECT strftime('%Y',Date) AS year, 
   strftime('%m',Date) AS month, 
   Avg(Weight) As Amount 
FROM BabyData 
Group By  strftime('%Y',Date),strftime('%m',Date)

但我只得到 1 个平均值

【问题讨论】:

【参考方案1】:
SELECT strftime('%m',`Date`) AS `month`,
       Avg(Weight) As `Amount `
FROM BabyData
WHERE `DATE` BETWEEN DATE('2011-2-2') 
                       AND 
                     date('2011-2-2','+12 month')
GROUP BY `Month`

【讨论】:

我对 strftime 有一些看法,这是正确的:select * from USER_DATA where type ='informed' order by CAST(strftime('%m', created_date) AS INTEGER)='"+sMonth+ "'

以上是关于在 sqlite 中按月分组的主要内容,如果未能解决你的问题,请参考以下文章

LINQ:在日期时间字段中按月和年分组

如何在 Jooq 中按月和年将毫秒翻译成日期和分组?

MySQL之按月拆分主表并按月分表写入数据提高数据查询速度

mysql 如何按月分组查询出当前年度每个月的短信数量(数据库中这个月要是为空的话就用0条怎么显示出来)

如何在 presto SQL 中按月分组

如何在bigquery中按月/年汇总