一所连锁店用到的表结构如下(比例一列现在为空)
商场编号 月份 商品号 销售量 比例(占该商场所有当月所有商品销售总量的百分比)
301 7 1 12 8%
301 7 3 50 92%
398 7 9 100
398 7 8 810
398 7 1 120
``````````````````````````````````````
`````````````````````````````````````1。现需要根据销售量 UPDATE 比例一列
2。输出编号1商品占所有商品销售总量的百分比
请各位大哥帮帮忙,来个效率最高的算法
商场编号 月份 商品号 销售量 比例(占该商场所有当月所有商品销售总量的百分比)
301 7 1 12 8%
301 7 3 50 92%
398 7 9 100
398 7 8 810
398 7 1 120
``````````````````````````````````````
`````````````````````````````````````1。现需要根据销售量 UPDATE 比例一列
2。输出编号1商品占所有商品销售总量的百分比
请各位大哥帮帮忙,来个效率最高的算法
解决方案 »
- ORACLE9i中EXP/IMP菜鸟问题
- 请教个问题,oracle系统包
- oracle等待事件
- oracle中PL/SQL块的问题
- dba_tables表中的一行为NUM_ROWS数值为何不与该表用SELECT COUNT(*)得到的行数同步?
- 临时表之疑惑,请各位赐教.
- 安装oracle9i application server 9.0.3时报 generalQueries读写错误 安装终止
- 想存入数量不等的图象文件,给如何设计数据库?
- Oracle9201客户端安装出错
- 关于触发器中关于update如何知道修改该表中的哪一字段?
- "小王,0""小李,0"找到0的字段标记为9,处理后根据结果分别标记为1或者2,多进程
- 奇怪的问题 isql中和oem中显示的不一磁,两个isql中也显示的不一样,多谢指点
tt.month,
tt.proId,
round(RATIO_TO_REPORT(tt.quantity)
over(partition by tt.pId, tt.month) * 100,
2) || '%' as percent
from tablename tt;
===============result_1================ PID MONTH PROID PERCENT
---------- ---------- ---------- -----------------------------------------
301 7 1 19.35%
301 7 3 80.65%
398 7 9 9.71%
398 7 8 78.64%
398 7 1 11.65%
2:=========sql_2==============select *
from (select tt.proId,
round(RATIO_TO_REPORT(sum(tt.quantity)) over() * 100, 2) || '%' as percent
from tablename tt
group by tt.proId)
where proId = 1;
==============result_2================= PROID PERCENT
---------- -----------------------------------------
1 12.09%
insert into tt values('301',7,'1',12,0);
insert into tt values('301',7,'3',50,0);
insert into tt values('398',7,'9',100,0);
insert into tt values('398',7,'8',810,0);
insert into tt values('398',7,'1',120,0);update tt t set scale=account/(select sum(account) from tt where t.id=id and t.mon=mon);
ratio_to_report (ship_no) OVER (PARTITION BY 商场编号) AS 占商场销售量比例,
月份
FROM 表这个是算法是商品所在商场的比例(小数)此类问题用分析函数解决很方便,而且效率很高.