原始数据:
  客户类型  订单数量  时间
   VIP客户       20   2009-8-28 15:20:40
   大客户        50   2009-8-28 15:20:40
   普通客户      30   2009-8-28 15:20:40
   VIP客户       20   2009-8-28 16:28:40
   大客户        50   2009-8-28 16:28:40
   普通客户      30   2009-8-28 16:28:40
   VIP客户       20   2009-8-29 15:20:40
   大客户        50   2009-8-29 15:20:40
   普通客户      30   2009-8-29 15:20:40
.............................
统计结果:
  客户类型 订单数量 占比例   日期
    VIP客户     40              20%      2009-8-28
    大客户      100             50%      2009-8-28
    普通客户    60              30%      2009-8-28
    VIP客户     20              20%      2009-8-29
    大客户      50              50%      2009-8-29
    普通客户    30              30%      2009-8-29
............................

解决方案 »

  1. select 客户类型,订单数量,订单数量/sum(订单数量)*100% 占比例,日期
    from TableName
    group by 客户类型,订单数量,日期
      

  2. select 客户类型,sum(订单数量)订单数量,
      round(sum(订单数量)*100,2)/sum(sum(订单数量))over(partition by trunc(时间))||'%'所占比例,
      trunc(时间)时间
      from tt
    group by 客户类型,trunc(时间)
    order by 时间,客户类型
      

  3. 上面那个有问题,select 客户类型,订单数量,订单数量/占比例 ||'%' 占比例,日期
    from
    (
    select 客户类型,订单数量,sum(订单数量) over(partition by 客户类型,日期) 占比例,日期
    from TableName
    ) k
      

  4. 寒~,还要分组select 客户类型,日期,s,trunc(s/sum(s)over(partition by 日期)*100,2)||'%' 占比例 from 
    (
    select 客户类型,日期,sum(订单数量) s from a group by 客户类型,日期
    ) T
      


  5. 修改下,百分比才正常。
    select 客户类型,sum(订单数量)订单数量,
      round(sum(订单数量)/sum(sum(订单数量))over(partition by trunc(时间))*100,2)||'%'所占比例,
      trunc(时间)时间
      from tt
    group by 客户类型,trunc(时间)
    order by 时间,客户类型
      

类似问题 »