最近4天平均值,sql语句如何写?
本帖最后由 nonion 于 2013-03-09 12:33:05 编辑
有张表如下
st date vol
....
....
101 2013/1/2 12
201 2013/1/8 5
201 2013/1/10 5
101 2013/1/18 11
101 2013/2/7 12
201 2013/2/6 5
101 2013/2/14 11
201 2013/2/28 3
101 2013/3/1 11
201 2013/3/1 6
101 2013/3/5 10
201 2013/3/5 4
根据存储的date日期,算出st最近4天的平均值
比如
101最近4天(3/5,3/1,2/14,2/7)的平均值=(10+11+11+12)/4=11
201最近4天(3/5,3/1,2/28,2/6)的平均值=(4+6+3+5)/4=4.5
st的种类有上百种
这sql语句如何写
------解决方案--------------------select st,cast(avg(vol*1.0) as decimal(28,2))vol from tb a
where exists (select 1 from (select top 4 b.date from tb b where a.st=b.st order by b.date desc)t where t.date=a.date)
group by a.st