Oracle 区域百分比

Oracle 区域百分比,oracle,sum,Oracle,Sum,我需要计算某一特定细分市场(即国内公司)按地区细分的总销售额百分比。 我的问题是 select REGION_NAME, round(ratio_to_report(nvl(sum(gross_sales_amt_t),0)) over ()*100) as Gr_Sales_domcorp from fact_mfdex_segment A JOIN dim_location B ON a.branch_code

我需要计算某一特定细分市场(即国内公司)按地区细分的总销售额百分比。
我的问题是

 select    REGION_NAME,  
           round(ratio_to_report(nvl(sum(gross_sales_amt_t),0)) over ()*100) as Gr_Sales_domcorp 
 from      fact_mfdex_segment A 
 JOIN      dim_location B 
 ON        a.branch_code = b.branch_code 
 WHERE     to_date(DATE_SK,'YYYYMMDD') between '01-feb-2016' and '01-mar-2016' 
 AND       week_flag='Y' 
 AND       a.segments = 'Domestic Corp.' 
 group by  REGION_NAME;

我需要对HNI、零售等重复相同的查询,而不是国内公司。我可以使用我的第一个查询添加其他细分市场,而不是编写不同的查询。我尝试过案例陈述,但不起作用。感谢您的任何帮助

只需将所需段的所有记录放入“IN”子句中,然后按段分组,即可获得预期结果

 select    REGION_NAME,  
           round(ratio_to_report(nvl(sum(gross_sales_amt_t),0)) over ()*100) as Gr_Sales_domcorp 
 from      fact_mfdex_segment A 
 JOIN      dim_location B 
 ON        a.branch_code = b.branch_code 
 WHERE     to_date(DATE_SK,'YYYYMMDD') between '01-feb-2016' and '01-mar-2016' 
 AND       week_flag='Y' 
 AND       a.segments IN ( 'Domestic Corp.','HNI','RETAIL') 
 group by  REGION_NAME, a.segments;


将a.segments添加到所选列,删除“和a.segments=…”行,按a.segments报告分区率,并按a.segments和区域名称分组。您可能需要将输出列名从Gr_Sales_domcorp更改为Gr_Sales。大概是这样的:

select     REGION_NAME, a.segments, 
           round(ratio_to_report(nvl(sum(gross_sales_amt_t),0)) 
                   over (partition by a.segments)*100) as Gr_Sales 
 from      fact_mfdex_segment A 
 JOIN      dim_location B 
 ON        a.branch_code = b.branch_code 
 WHERE     to_date(DATE_SK,'YYYYMMDD') between '01-feb-2016' and '01-mar-2016' 
 AND       week_flag='Y'  
 group by  a.segments, REGION_NAME
 order by  a.segments, REGION_NAME

? 这不会单独显示国内公司和HNI等的区域细分。我认为OP的要求很明确。要明确的是:您缺少的是ratio To报告中的partition by子句。@MaheshChand。谢谢,但我想要的是。假设有10个区域,那么我需要4列10行。i、 e regionname、gross_domcorp、gross_hni、gross_retail.感谢这对我有用:)我只需在上面添加另一个块,用case语句将其分隔为不同的列。您应该能够通过旋转获得行和列。另一方面,这种格式听起来更像是一种报告要求;无论您的组织中使用什么标准报告工具,都可以更轻松地完成。不管怎样,很高兴你得到了你需要的帮助。干杯