日期:2014-05-17  浏览次数:20729 次

如何按一列取平均值,然后把平均值插到列里?
表格如下

rownum  time   type    value
1   01月 aaa 0
2  01月  bbb     0
3  01月 ccc 0
4  02月 aaa 0
5   02月 bbb 0
6        02月 ccc 0
7  03月 aaa 0
8    03月 bbb 0
9  03月 ccc 0
10   04月 aaa 0
11  04月 bbb 0
12  04月 ccc 0


我想得到的查询结果是:
1 01月 aaa 2
2 01月  bbb     2
3 01月 ccc 2
        01月    平均值  2
4 02月 aaa 4
5 02月 bbb 6
6 02月 ccc 8
        02月    平均值  9
7 03月 aaa 5
8 03月 bbb 10
9 03月 ccc 15
        03月    平均值  10
10 04月 aaa 0
11 04月 bbb 0
12 04月 ccc 0
        04月    平均值  0

------解决方案--------------------
insert into table select null,time,'avg',avg(value)  from table group by time


------解决方案--------------------
引用:
table也是个查询sql,如下:

select t.time, t.type, t.value from (select.............................................................................................................................) tt

怎么在这个查询结果里,再添加个每月的平均值?

1月   类型1    值
1月   类型2    值
1月   类型3    值
1月   平均值   值
2月   类型1    值
2月   类型2    值
2月   类型3    值
2月   平均值   值

select * from 
(select null,time,'avg',avg(value)  from table group by time
union all
select * from table
) t order by t.time,type