我的数据就是这样
Dept Sub_Dept Sal
d1 sd1 100
d1 sd1 150
d1 sd2 100
d1 sd2 200
d1 sd2 350
d2 sd1 100
d2 sd1 250
d2 sd1 250
d2 sd2 200
d2 sd2 350
我的输出应该是每个子部门的计数,每个子部门(AVG
)的Sal值的sub_dept
和所有部门(部门)的AVG
< / p>
我希望我的输出看起来像这样
结果
d1 sd1 2 125
d1 sd2 3 200
Total 5 180
d2 sd1 3 200
d2 sd2 2 225
Total 5 230
grand total 10 205
如何获取内部AVG
和外部collection[] co=null;
[...]
co[counter]=...
值?
答案 0 :(得分:0)
全部使用联盟
select dept,sub_dept,count(*) cnt ,avg(Sal) as av
from table_name group by dept,sub
union all
select 'total','', count(*),avg(Sal)
from table_name
答案 1 :(得分:0)
大多数SQL方言支持标准grouping sets
(或至少roll up
)。典型语法为:
select dept, sub_dept, avg(sal)
from t
group by grouping sets ( (dept, sub_dept), () );