需要从一个监测数据库提取相关数据,表如下:
AZWZ PJZ ZDZ BCSJ(保存时间)
22118采面 0.33 0.34 2010-1-1 0:00:00
1330采面 0.33 0.34 2010-1-1 0:00:00
22153回风巷 0.33 0.34 2010-1-1 0:00:00
223水仓 0.33 0.34 2010-1-1 0:00:00
22118采面 0.33 0.34 2010-1-1 0:05:00
1330采面 0.33 0.34 2010-1-1 0:05:00
22153回风巷 0.33 0.34 2010-1-1 0:05:00
223水仓 0.33 0.34 2010-1-1 0:05:00 上面的表是省略后的。每隔5分钟记录一次,从2010-1-1 00:00:00到2010-1-1 23:55:00,这只是1天的。这个数据库保存了2年的记录,数据量很庞大。
我想按AZWZ来提取PJZ, ZDZ,BCSJ,由于数据量大,PJZ和ZDZ只按1天的平均值算,BCSJ按天显示。提取数据后的表格如下:
AZWZ PJZ ZDZ BCSJ
22118采面 按1天平均值算 按1天平均值算 2010-1-1
22118采面 按1天平均值算 按1天平均值算 2010-1-2
1330采面 按1天平均值算 按1天平均值算 2010-1-1
1330采面 按1天平均值算 按1天平均值算 2010-1-2
AZWZ PJZ ZDZ BCSJ(保存时间)
22118采面 0.33 0.34 2010-1-1 0:00:00
1330采面 0.33 0.34 2010-1-1 0:00:00
22153回风巷 0.33 0.34 2010-1-1 0:00:00
223水仓 0.33 0.34 2010-1-1 0:00:00
22118采面 0.33 0.34 2010-1-1 0:05:00
1330采面 0.33 0.34 2010-1-1 0:05:00
22153回风巷 0.33 0.34 2010-1-1 0:05:00
223水仓 0.33 0.34 2010-1-1 0:05:00 上面的表是省略后的。每隔5分钟记录一次,从2010-1-1 00:00:00到2010-1-1 23:55:00,这只是1天的。这个数据库保存了2年的记录,数据量很庞大。
我想按AZWZ来提取PJZ, ZDZ,BCSJ,由于数据量大,PJZ和ZDZ只按1天的平均值算,BCSJ按天显示。提取数据后的表格如下:
AZWZ PJZ ZDZ BCSJ
22118采面 按1天平均值算 按1天平均值算 2010-1-1
22118采面 按1天平均值算 按1天平均值算 2010-1-2
1330采面 按1天平均值算 按1天平均值算 2010-1-1
1330采面 按1天平均值算 按1天平均值算 2010-1-2
azwz,avg(pjz) as pjz,avg(zdz) as zdz,
conver(varchar(10),bcsj,120) as bcsj
from
tb
group by
azwz,conver(varchar(10),bcsj,120) as bcsj
--修改
select
azwz,avg(pjz) as pjz,avg(zdz) as zdz,
conver(varchar(10),bcsj,120) as bcsj
from
tb
group by
azwz,conver(varchar(10),bcsj,120)
select
azwz,avg(pjz) as pjz,avg(zdz) as zdz,
convert(varchar(10),bcsj,120) as bcsj
from
tb
group by
azwz,convert(varchar(10),bcsj,120)
--掉了个T
select
azwz,avg(pjz) as pjz,avg(zdz) as zdz,
convert(varchar(10),bcsj,120) as bcsj
from
tb
group by
azwz,convert(varchar(10),bcsj,120)
AZWZ PJZ ZDZ BCSJ
22183采面T0 0.221875 0.232395 2010-01-15
22183采面T0 0.246701 0.260381 2010-01-26
22183采面T0 0.221597 0.231805 2010-01-21
22183采面T0 0.231620 0.246448 2010-01-27
22183采面T0 0.226602 0.236525 2010-01-23
22183采面T0 0.221006 0.231284 2010-01-19
22183采面T0 0.218715 -242.826805 2010-01-10
22183采面T0 0.223472 0.233020 2010-01-22
22183采面T0 0.232013 -346.966770 2010-01-31
22183采面T0 0.228472 0.238472 2010-01-09
日期能不能按顺序显示,从2010-01-1到2010-01-31
insert into resulttb
select
azwz,avg(pjz) as pjz,avg(zdz) as zdz,
conver(varchar(10),bcsj,120) as bcsj
from
tb
group by
azwz,conver(varchar(10),bcsj,120) as bcsj偷一下楼上的sql ~~!
这种数据整理我做过,建议lz 按照时间段分段执行sql 整理数据。。不然的话成千万的的数据会有点慢
azwz,avg(pjz) as pjz,avg(zdz) as zdz,
convert(varchar(10),bcsj,120) as bcsj
from
tb
where
azwz='22183采面T0'
group by
azwz,convert(varchar(10),bcsj,120)
order by 4