sql server - SQL generate value between rows -
i have 3 rows of data, , want add value between rows. in excel can use excel formula , create manually, want create in sql. expected result image :
in picture, f3 average value between id 1 , 2 , divide 10. after average value, use first value in e3 , add value f3, , 1.271111. e5 use e4 add value f3 , on.
i want add 10 row between different id, , base on difference value between id, sum previous value difference value. isn't possible in sql statement?
i'm confused average.
select (10 - 0.18) / 9 -- 1.091111 -- average? -- select (10 - 0.18) / 10 -- 0.982000000 select (32.11 - 10) / 10 -- 2.211000
you can below:
declare @tbl table (id int, value decimal(7, 5)) insert @tbl values (1, 0.18), (2, 10), (3, 32.11) ;with cte ( select id , value, coalesce((lead(value) on (order id) * 1.0 - value * 1.0) / 10, 0) averagevalue @tbl ) --select (10 - 0.18) / 10 -- 0.982000000 --select (32.11 - 10) / 10 -- 2.211000 select distinct a.id, coalesce((b.rowid * 1.0 * a.averagevalue) + a.value,0) result cte cross join (values(0), (1), (2), (3), (4), (5), (6), (7), (8), (9)) b(rowid)
note: 2012+
Comments
Post a Comment