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

跪求相同列值的SQL操作语句或者存储过程-100分!解决方法

2012-01-28 
跪求相同列值的SQL操作语句或者存储过程--100分!表格如下:表A样本采样时间采集地点采样值12007-5-19a0.112

跪求相同列值的SQL操作语句或者存储过程--100分!
表格如下:表A    
样本                         采样时间                         采集地点                         采样值    
1                         2007-5-19                         a                         0.1    
1                         2007-5-19                         b                         0.12    
1                         2007-5-20                         a                         0.1    
1                         2007-5-20                         b                         0.1    
2                         2007-5-19                         a                         0.22    
2                         2007-5-19                         b                         0.1    
2                         2007-5-20                         c                         0.09    
2                         2007-5-20                         d                         0.1    
要求:    
操作数据插入:样本相同但不同时间的采样平均值和标准差等    
也就是如下表B    
样本                         采样时间                         采样值         标准差    
1                         2007-5-19                                 0.11    
1                         2007-5-20                                 0.10    
2                         2007-5-19                                 0.22    


2                         2007-5-20                                 0.85    
 
急!     在线等!

[解决办法]
select 样本,采样时间,平均采样值=avg(采样值),标准差=stdev(采样值) into b from a group by 样本,采样时间 order by 样本,采样时间
[解决办法]
select 样本,
采样时间,
avg(采样值) as 平均采样值,
stdev(采样值) as 标准差
into b
from a
group by 样本,采样时间


[解决办法]
--创建测试环境
create table #t(样本 int, 采样时间 datetime, 采集地点 varchar(100), 采样值 decimal(10,2))

--追加测试数据
insert into #t
select 1, '2007-5-19 ', 'a ',0.1 union all
select 1, '2007-5-19 ', 'b ',0.12 union all
select 1, '2007-5-20 ', 'a ',0.1 union all
select 1, '2007-5-20 ', 'b ',0.1 union all
select 2, '2007-5-19 ', 'a ',0.22 union all
select 2, '2007-5-19 ', 'b ',0.1 union all
select 2, '2007-5-20 ', 'c ',0.09 union all
select 2, '2007-5-20 ', 'd ',0.1
--查询语句
select 样本,
采样时间,
cast(avg(采样值) as decimal(10,3)) as 平均采样值,
cast(stdev(采样值) as decimal(10,3)) as 标准差
from #t
group by 样本,采样时间
order by 样本,采样时间

--删除临时表
drop table #t

热点排行
Bad Request.