gpt4 book ai didi

android - 用于处理日期的 SQLite 查询

转载 作者:搜寻专家 更新时间:2023-11-01 09:02:26 26 4
gpt4 key购买 nike

我在 Sqlite 数据库中有这种格式的数据..

  month     year     FarmerCode     Value
12 2012 1 10
9 2012 1 25
12 2012 2 5
10 2012 2 12
..........
..........

我必须找出 FarmerCode 的平均值。假设对于 FarmerCode 1,两个月是 12 和 9。所以差异是 12 - 9 = 3

然后是 average = (25+10)/diffrence(这里是 3)

找到这个的查询是什么?

最后,如果日期移动到明年,如下所示

  month     year     FarmerCode     Value

1 **2013** 4 20
10 **2012** 4 50

这次我做不到 1-10

那么根据 FarmerCode 和相应的平均值查找两个月之间差异的可能的 sqlite 查询是什么,查找平均值的公式将是

average = (value1+value2)/diffrence of months

最佳答案

想法:

诀窍是将年份乘以 12,然后将其与月份相加。

(2013*12+1)-(2012*12+10) = 3

SQL 查询:

为此在 sqlite 中测试的有效 SQL 查询是:

SELECT 
FarmerCode,
SUM(value) / (MAX(12 * year + month) - MIN(12 * year + month))
FROM
t
GROUP BY
FarmerCode;

通过使用 GROUP BY FarmerCode,您可以为每个不同的 FarmerCode 值获得一个结果行。因此,sum()min()max() 聚合具有相同 FarmerCode 的行的所有值。如果每个 FarmerCode 值有两行,则此查询中的 min()max() 结构可以正常工作。

关于android - 用于处理日期的 SQLite 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14054496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com