每天从 sqlite 数据库获取数据 DATE TIME

kak*_*a47 4 sqlite datetime android

我有一个sqlite数据库。我有三列:_id、日期、值。

我现在想根据日期中的日期提取 _id:s 的计数,并计算 int 值的平均值。这是针对 Android 应用程序的。

所以我想“选择日期中的日期和每一天(六十天),计算这一天有多少 _id:s。最后计算值的平均值。

我想它是这样的:

"SELECT DATE('now' 'days[i]') as date, COUNT(_id) as count,  AVG(value) as vl FROM v_efforts WHERE DATE(v_efforts.date) = DATE('now' 'days[i]')";
Run Code Online (Sandbox Code Playgroud)

但我无法开始'days[i]'工作。我不知道如何使这个值增加到 60,然后如何存储这 60 天中每一天的计数和 vl。

多谢!

gli*_*dud 5

您需要使用 GROUP BY 表达式按日期聚合条目。不太清楚您是要查找数据库中最近 60 天的条目,还是最近 60 天的条目(只有在假设每天都有条目的情况下才会相同)。

对于前者(过去 60 天有数据库条目),您可以使用 LIMIT 子句:

SELECT date,COUNT(_id),AVG(value) FROM v_efforts GROUP BY date ORDER BY date DESC LIMIT 60;
Run Code Online (Sandbox Code Playgroud)

对于后者(过去 60 个真实天数),您可以使用 WHERE:

SELECT date,COUNT(_id),AVG(value) FROM v_efforts WHERE date>DATE('now','-60 days') GROUP BY date ORDER BY date DESC;
Run Code Online (Sandbox Code Playgroud)