之前
select l.dte, l.oracle_apps, l.tableau, l.sab_bi, l.tririga,,
o.oracle_, o.tableau_, o.sab_, o.tririga_
from (select trunc(l.time_snapshot) as dte,
sum(l.oracle_apps) as oracle_apps,
sum(l.tableau) as tableau,
sum(l.sab_bi) as sab_bi,
sum(l.tririga) as tririga
from licenses l
group by trunc(l.time_snapshot)
) l cross join
(select sum(case when license_name = 'oracle_' then license_count else 0 end) as oracle_,
sum(case when license_name = 'tableau_' then license_count else 0 end) as tableau_,
sum(case when license_name = 'sab_' then license_count else 0 end) as sab_,
sum(case when license_name = 'tririga_' then license_count else 0 end) as tririga_
from organization o
) o;
在单个表上进行聚合对我来说似乎更安全(如果
oracle_
在组织表中出现两次,您的
计数将关闭)。此外,生成的查询可能更快,因为对单个表的优化通常比对多个表的优化更容易。