使用查询SQL的平均增长率
我有下表: 请帮助我在SQL中使用以下查询: 平均值(值2/1、值3/2、值4/3)使用查询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 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不是可识别的内置函数名。错误。