id-name-price
1-销售1-40
2-销售1-30
3-销售1-20
4-销售1-10
5-销售2-90
6-销售2-32
7-销售2-20
8-销售2-10要得到price价格占比合计前50%的记录 如:销售1 price合计为10+20+30+40=100*50%=50,前50%占比的记录为
40+30=70>50
1-销售1-40
2-销售1-30销售2 price合计为10+20+32+90=152*50%=76,前占比50%的记录为
90>76
5-销售2-90
1-销售1-40
2-销售1-30
3-销售1-20
4-销售1-10
5-销售2-90
6-销售2-32
7-销售2-20
8-销售2-10要得到price价格占比合计前50%的记录 如:销售1 price合计为10+20+30+40=100*50%=50,前50%占比的记录为
40+30=70>50
1-销售1-40
2-销售1-30销售2 price合计为10+20+32+90=152*50%=76,前占比50%的记录为
90>76
5-销售2-90
解决方案 »
- pl/sql连接oracle9.2.0.7.0 时而没问题,时而报“ORA-12545因目标主机或对象不存在,连接失败”
- 数据库用户名密码修改的烦恼
- 急!给高分!哪为大哥给看看这个问题啊,做一个定时任务参数总出错啊!
- 什么方法都是ORA-27102: out of memory
- oracle数据存储返回字符串为空?
- exists和连接查询,在CBO的情况下,哪种效率高
- 超超级弱智的问题!
- 错误:ORA-01000: maximum open cursors exceeded
- 简单的问题--客户机访问服务器上的oracle,在客户端配端口号要配多少?IP地址要不要配?
- 帮忙看下这段存储过程,可以执行,但是调用时候会报错
- sqlldr 中position用法
- 超难sql,求大牛解答
select t1.* from
tb t1,
(select name,avg(price) avg_price from tb group by name) t2
where t1.name=t2.name
and price>avg_price
SELECT t1.*
FROM tb t1,
( SELECT MIN (id) id, name
FROM (SELECT id,
name,
price,
(SUM (price) OVER (PARTITION BY name)) / 2
percent,
SUM(price)
OVER (
PARTITION BY name
ORDER BY id
ROWS BETWEEN UNBOUNDED PRECEDING
AND CURRENT ROW
)
subsum
FROM tb)
WHERE subsum > percent
GROUP BY name) t2
WHERE t1.name = t2.name AND t1.id <= t2.id;
select t1.* from
tb t1,
(select name,sum(price)/2 avg_price from tb group by name) t2
where t1.name=t2.name
and price>avg_price