跪求相同列值的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