请教如何使用union才能达到想要的效果
请教一下,执行下面的语句查询后
select RID ,sum_eval,s_i_name1,s_i_code1 from TMP_REP_2 WHERE rownum<=5
union
select '前三名', sum_eval,s_i_name1,s_i_code1 FROM  TMP_REP_2 WHERE rownum<=3
union
select '前五名', sum_eval,s_i_name1,s_i_code1 FROM  TMP_REP_2 WHERE rownum<=5;
输出的结果如下:
1	33060379.4	黑色金属	801040
2	31104500	         金融服务	801190
3	24637023.34	机械设备	801070
4	23879016	         房地产	801180
5	16744197.44	医药生物	801150
前三名	24637023.34	机械设备	801070
前三名	31104500	         金融服务	801190
前三名	33060379.4	黑色金属	801040
前五名	16744197.44	医药生物	801150
前五名	23879016	         房地产	801180
前五名	24637023.34	机械设备	801070
前五名	31104500	         金融服务	801190
前五名	33060379.4	黑色金属	801040
如何才能得到如下的结果,就是最后2行是前面的数据的合计,但要能在一起显示出来?
1	33060379.4	黑色金属	801040
2	31104500	         金融服务	801190
3	24637023.34	机械设备	801070
4	23879016	         房地产	801180
5	16744197.44	医药生物	801150
前三名	88801903  		
前五名	129425116
------解决方案--------------------
select RID ,sum_eval,s_i_name1,s_i_code1 from TMP_REP_2 WHERE rownum<=5
union all
select rid,sum(sum_eva),null,null
(select '前三名' rid, sum_eval,s_i_name1,s_i_code1 FROM TMP_REP_2 WHERE rownum<=3
union
select '前五名' rid, sum_eval,s_i_name1,s_i_code1 FROM TMP_REP_2 WHERE rownum<=5) group by rid;
------解决方案--------------------
select RID ,sum_eval,s_i_name1,s_i_code1 from TMP_REP_2 WHERE rownum<=5
union all
select rid,sum(sum_eval),null,null
from (select '前三名' rid, sum_eval,s_i_name1,s_i_code1 FROM TMP_REP_2 WHERE rownum<=3
union
select '前五名' rid, sum_eval,s_i_name1,s_i_code1 FROM TMP_REP_2 WHERE rownum<=5) group by rid;