使用查询SQL的平均增长率

使用查询SQL的平均增长率,sql,Sql,我有下表: 请帮助我在SQL中使用以下查询: 平均值(值2/1、值3/2、值4/3) 非常感谢 适用于SQL Server 2008或更高版本 ; WITH CTE AS ( SELECT *, LAG(VALUE) OVER(ORDER BY MONTH) AS XX FROM YOURTABLE ) SELECT AVG(CAST(VALUE AS FLOAT) / CAST(XX AS FLOAT)) FROM CTE WHERE XX IS NOT NULL 适用于SQL Serv

我有下表:

请帮助我在SQL中使用以下查询: 平均值(值2/1、值3/2、值4/3)


非常感谢

适用于SQL Server 2008或更高版本

; WITH CTE AS
(
SELECT *, LAG(VALUE) OVER(ORDER BY MONTH) AS XX FROM YOURTABLE
) 
SELECT AVG(CAST(VALUE AS FLOAT) / CAST(XX AS FLOAT)) FROM CTE WHERE XX IS NOT NULL

适用于SQL Server 2008或更高版本

; WITH CTE AS
(
SELECT *, LAG(VALUE) OVER(ORDER BY MONTH) AS XX FROM YOURTABLE
) 
SELECT AVG(CAST(VALUE AS FLOAT) / CAST(XX AS FLOAT)) FROM CTE WHERE XX IS NOT NULL
试试这个:

SELECT AVG(Calc)
FROM
(
  SELECT t2.Value/t1.Value AS Calc
  FROM [Table] t1
  JOIN [Table] t2
  ON t1.[Month] = t2.[Month] + 1
) calc
试试这个:

SELECT AVG(Calc)
FROM
(
  SELECT t2.Value/t1.Value AS Calc
  FROM [Table] t1
  JOIN [Table] t2
  ON t1.[Month] = t2.[Month] + 1
) calc
尝试下面的查询

            select avg(CAST(a.value as FLOAT)/cast(a.mm as FLOAT)) from
            (
            SELECT *, LAG(value) OVER(ORDER BY MONTH) AS mm FROM #your_table
            ) 
            a where a.mm is not null
如果您有疑问,请告知我们

请尝试下面的查询

            select avg(CAST(a.value as FLOAT)/cast(a.mm as FLOAT)) from
            (
            SELECT *, LAG(value) OVER(ORDER BY MONTH) AS mm FROM #your_table
            ) 
            a where a.mm is not null

如果您有问题,请告知我们

我希望使用查询SQL进行以下操作:

如果我选择月份=3=>result=AVG(value2/value1,value3/value2)-1

如果我选择月份=4结果=平均值(值2/值1、值3/值2、值4/值3)-1


谢谢

我想使用SQL查询:

如果我选择月份=3=>result=AVG(value2/value1,value3/value2)-1

如果我选择月份=4结果=平均值(值2/值1、值3/值2、值4/值3)-1



谢谢

您正在使用的数据库管理系统??您正在使用的数据库管理系统??即使是较旧版本的
SQL SERVER
也不支持
LAG
@prdp。OP没有指定正在使用的数据库,
LAG()
是ANSI标准功能。您可以用其他方式告诉我吗?多谢了,你说的另一个意思是什么?即使是较旧版本的
SQL SERVER
也不支持
LAG
@prdp。OP没有指定正在使用的数据库,
LAG()
是ANSI标准功能。您可以用其他方式告诉我吗?多谢了,你说的其他方式是什么意思?我运行SQL错误消息208,级别16,状态1,第1行无效的对象名“VILIVE”。(VILIVE是我的表)抱歉,我不明白。我还有另一个问题,如果我想添加“where month=3”我运行SQL错误消息208,级别16,状态1,第1行无效对象名称“VILIVE”,请指导我。(VILIVE是我的表)对不起,我不明白。我还有另一个问题,如果我想使用ms sql 2008添加“where month=3”,请指导我,Lag不是公认的内置函数名。错误。我使用ms sql 2008时,Lag不是可识别的内置函数名。错误。