再问二次查询
先用查询语句合并多个相同的数据表(其中 id name 相同)
select id,name,data1,data2,data3 from TEST1
UNION select id,name,data1,data2,data3 from TEST2
UNION select id,name,data1,data2,data3 from TEST3
接下来
如何分组(id)查询 data1,data2,data3的平均值?
或者不用先合并,如何查询 data1,data2,data3的平均值?
[解决办法]
select id,name,data1,data2,data3,avg(data1+data2+data3) as avgdata from TEST1
UNION select id,name,data1,data2,data3,avg(data1+data2+data3) as avgdata from TEST2
UNION select id,name,data1,data2,data3,avg(data1+data2+data3) as avgdata from TEST3
[解决办法]
建个临表tmp111 (结构只有id,name,data1,data2,data3)
再建一个存储过程 proc_abc
- SQL code
SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GOCREATE procedure proc_abc ASdelete from tmp111insert into tmp111select id,name,data1,data2,data3 from TEST1 UNION select id,name,data1,data2,data3 from TEST2UNION select id,name,data1,data2,data3 from TEST3insert into tmp111 select 99999,'',avg(data1),avg(data2),avg(data3)select * from tmp111GOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO