我正试图将总计添加到一个包含RATIO_TO_REPORT的中等简单的查询中。我审查了Stack solution(除其他外),我无法使它与我的查询工作。
我的疑问是,
select category, sum(selected_widgets) sum_selected_widgets, to_char(round(RATIO_TO_REPORT(sum(selected_widgets)) over (),4)*100,'999d99') || '%' percentage_selected,
count(*) widget_count, to_char(round(RATIO_TO_REPORT(count(*)) over (),4)*100,'999d99') || '%' percentage_all_widgets
from
(
select widget_id, widget_seq, decode(widget_category,'1100',1,'2372',1,'2650',1,'3932',1,0) selected_widgets, min(category) category
from widget
inner join widget_detail wd on wd.widget_id = widget_id and wd.widget_seq = widget_seq and category is not null
where widget_dx_date between '2018 ' and '20219999'
group by widget_id, widget_seq, decode(widget_category,'1100',1,'2372',1,'2650',1,'3932',1,0)
)iq
group by category
order by 1;
我所要做的就是得到最后4列的总数。如果我将“rollup”添加到group by中,它将rollup行用作百分比计算的一部分,如下所示;
0 6886 3.20% 77871 5.32%
1 40689 18.91% 256538 17.54%
2 8898 4.13% 43615 2.98%
3 9817 4.56% 52809 3.61%
4 5087 2.36% 24683 1.69%
7 27397 12.73% 169669 11.60%
8 4451 2.07% 24148 1.65%
9 4371 2.03% 82084 5.61%
107596 50.00% 731417 50.00%
如何将总计添加到此查询?
1条答案
按热度按时间bjp0bcyl1#
我发现另一个Stack Answer没有帮助,直到我点击DB Fiddle link and analyzed the code。
我所缺少的是,是的,我需要汇总,但我也需要;
1.合并器,用于处理null。
我最好的解释,请纠正我的错误,我会更新这个答案。
case语句告诉ratio_to_report只计算grouping_id类别,而忽略total行。