Sql 我如何获得前一个日期的平均值并进行更新?
我想写一个平均值的查询(这并不难),但当我得到平均值时,我想把它保存在某个地方。让我们来看看上个月表a的平均储蓄率。现在我再次运行查询,这将是当前月平均值。我想比较这两列,看看当前月平均数是否比上个月平均数增加 在比较之后,我想输出这两个函数的最大平均数。完成此操作后,我希望将当前月平均值移动到上个月平均值,以便在下个月运行查询时,其中一个变为旧平均值 这在sql中可能吗?或者有更好的方法吗?任何建议都会有帮助 在比较之后,我想输出这两个函数的最大平均数。完成此操作后,我希望将当前月平均值移动到上个月平均值,以便在下个月运行查询时,其中一个变为旧平均值 据我所知,此操作是从所有历史记录中选择最大月平均值。所以你不需要保存当前月平均值和上个月平均值的记录。相反,一个包含所有历史月平均值的表格是有帮助的。假设有一个名为monthaverage的表,其中包含列(Id、Month、Average),您可以进行查询Sql 我如何获得前一个日期的平均值并进行更新?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我想写一个平均值的查询(这并不难),但当我得到平均值时,我想把它保存在某个地方。让我们来看看上个月表a的平均储蓄率。现在我再次运行查询,这将是当前月平均值。我想比较这两列,看看当前月平均数是否比上个月平均数增加 在比较之后,我想输出这两个函数的最大平均数。完成此操作后,我希望将当前月平均值移动到上个月平均值,以便在下个月运行查询时,其中一个变为旧平均值 这在sql中可能吗?或者有更好的方法吗?任何建议都会有帮助 在比较之后,我想输出这两个函数的最大平均数。完成此操作后,我希望将当前月平均值移动到
SELECT TOP 1 T1.*
, CASE WHEN
T1.Average > (SELECT TOP 1 T2.Average
FROM monthaverage T2
WHERE T2.Month < T1.Month
ORDER BY Month DESC)
THEN 'Increased'
ELSE 'Not Increased'
END
FROM monthaverage T1
ORDER BY T1.Average DESC
现在我只能得到平均值,甚至不知道如何开始比较两个月的其他部分。旧的月份平均值已经在数据库中。您可以使用avg(columnname),因为avg是一个内置函数。请提供查询以便我们可以帮助您?
SELECT TOP 1 *, CASE WHEN Average > LAST_VALUE(Average) OVER (ORDER BY Month) THEN 'Increased' ELSE 'Not Increased' END
FROM monthaverage
ORDER BY Average DESC