首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

用MYSQL根据同一个字段的值取他所对应的值前3个对应的是value平均值解决办法

2012-03-04 
用MYSQL根据同一个字段的值取他所对应的值前3个对应的是value平均值比如一张表,datetypevalue199203a23199

用MYSQL根据同一个字段的值取他所对应的值前3个对应的是value平均值
比如一张表,date type value  
  199203 a 23  
  199206 a 12
  199209 a 13
  199212 a 14
  199303 a 34
  199201 b 3
  199202 b 4
  199203 b 5
  199204 b 3
  199205 b 6
  199206 b 6
  199207 b 4
  199208 b 3
  199209 b 2
  199210 b 3 
  199211 b 6
  199212 b 3
  199301 b 7
  199302 b 5
  199303 b 6
用MYSQL写,怎样写能的出这样的结果
  date type value type1 value1
  199203 a 23 b 4
  199206 a 12 b 5
  199209 a 13 b 3
  199212 a 14 b 4
  199303 a 34 b 6

也就是value1 的当date=199203 的时候 value1的值 等于type=b date=199201,199202,199203 的value 平均值

[解决办法]

SQL code
select  date,min(case when type='a' then value end),min(case when type='b' then value end)from tbgroup by date
[解决办法]
select date ,type ,value, 'b' as type1, (select sum(value) from (select value from 比如一张表 where type='b' and date<t.date order by date desc limit 3 ) a) as value1
from 比如一张表 t
where type='a'

试试这个,未经测试。

热点排行