我的表结构是area_no(地市),city_no(县区),tele_type(业务类型),brand(品牌),user_dinner(套餐),user_charge(收入)
我有很多的套餐,我想计算出收入最高的套餐占该维度所有套餐的收入的比例
比如说 aa地市 bb县区 cc业务类型 dd品牌 ff套餐占 aa地市 bb县区 cc业务类型 dd品牌所有套餐的收入的比例
我有很多的套餐,我想计算出收入最高的套餐占该维度所有套餐的收入的比例
比如说 aa地市 bb县区 cc业务类型 dd品牌 ff套餐占 aa地市 bb县区 cc业务类型 dd品牌所有套餐的收入的比例
解决方案 »
- oracle大数据插入
- 怎么取varchar2类型数据的最大值?
- 请教一个用SQL实现对账功能的思路,望赐教
- 这个SQL应该怎么写
- oracle 报ora-01461错误,如何解决。
- 如何在Radhat Linux 9 下安装 Oracle8.1.7? 多谢各位了!
- 请问EMD后缀的文件是什么文件?用什么工具呀?
- 如果数据服务器系统Down掉,如何挽回数据库中的数据
- 进入svrmgrl用startup不能启动我后来创建的database,请问该怎么做?
- 各位高手,请问哪儿有ORACLE9i的中文版下,谢谢大家!!
- 用proc怎么样实现并行启多个存储过程????????
- 没分~初学ORCAL 谁告诉我个ORCAL的作业怎么写啊 最好有例子 谢谢
where area_no='aa' and city_no='bb'
and tele_type='cc' and brand='dd'
decode函数
decode(A.ALL_CHARGE_USER,0,0,A.CHARGE_USER / A.ALL_CHARGE_USER),
decode(A.ALL_TOTAL_FEE,0,0,A.TOTAL_FEE / A.ALL_TOTAL_FEE)
FROM (
SELECT *
FROM (SELECT AREA_NO,
CITY_NO,
TELE_TYPE,
BRAND,
USER_DINNER,
CHARGE_USER_COUNT CHARGE_USER,
TOTAL_FEE TOTAL_FEE,
SUM(CHARGE_USER_COUNT) OVER(PARTITION BY AREA_NO, CITY_NO, TELE_TYPE, BRAND) ALL_CHARGE_USER,
SUM(TOTAL_FEE) OVER(PARTITION BY AREA_NO, CITY_NO, TELE_TYPE, BRAND) ALL_TOTAL_FEE,
ROW_NUMBER() OVER(PARTITION BY AREA_NO, CITY_NO, TELE_TYPE, BRAND ORDER BY CHARGE_USER_COUNT DESC) ROWNO
FROM (SELECT AREA_NO,
CITY_NO,
TELE_TYPE,
BRAND,
USER_DINNER,
SUM(CHARGE_USER_COUNT) CHARGE_USER_COUNT,
SUM(TOTAL_FEE) TOTAL_FEE
FROM DW.DW_F_INCO_M_CHARGE_MONTH
WHERE ACCT_MONTH = V_ACCT_MONTH
AND tele_type IN ('1','2')
AND USER_DINNER IS NOT NULL
GROUP BY AREA_NO, CITY_NO, TELE_TYPE, BRAND, USER_DINNER))
WHERE ROWNO = 1)