AVG growth using query SQL

I have the following table:

table

Please help me to use the following query in SQL: "avg(value2/value1,value3/value2,value4/value3)"

Thanks so much !

Upvotes: 0

Views: 479

Answers (4)

I want using query SQL for:

If i select month=3 => result = AVG(value2/value1,value3/value2)-1

If i select month=4 result = AVG(value2/value1,value3/value2,value4/value3)-1

Thanks

Upvotes: 0

Mr. Bhosale
Mr. Bhosale

Reputation: 3106

Try Below Query .

            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

Please let us know if u have an concerns

Upvotes: 0

J. Bloggs
J. Bloggs

Reputation: 58

Try this:

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

Upvotes: 1

Esty
Esty

Reputation: 1912

For SQL Server 2008 or later;

; 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

Upvotes: 1

Related Questions