表一
ID 父ID
1 0
11 1
112 11
113 11
2 0
3 0
31 3
32 3
311 31
312 31
3111 311
3112 311
3121 312表二
ID 点击量
11 1234
112 5678
113 0
31 500
32 300
311 123
3111 1100
3112 1011
3121 10结果,统计顶级ID的点击量,如下
1 6912
2 0
3 3044
我试了半天一条语句怎么也搞不定。
解决方案 »
- 想从Access中通过SQL语句的方式导入数据到oracle中
- 两个服务器oracle中表格的insert into table select * from anothertable;
- oracle根据用户备份的命令是什么呢 多用户的
- 向表空间添加数据文件的小错误
- 语句错误提示为literal does not match format string
- oracle存储过程查询更新--哪里有相关实例
- 删除了ole db 提供程序
- 关于oracle三个问题?
- 写一个存储过程,想在oci调用中取出结果集,如通过游标返回的话,函数不能直接返回ref cursor,必须定义包,请问有什么更好的办法吗
- SQL优化求解
- oracle 如何设置一个链接超时时间
- -- Oracle 如果监控某存储过程的执行情况? --
from 表一 t1,表二 t2
where t1.ID =t2.ID(+)
group by t1.父ID
CREATE TABLE HR.B1
(
ID NUMBER,
FID NUMBER
)CREATE TABLE HR.B2
(
ID NUMBER,
DJL NUMBER
)select fid, sum(djl) from
(
select b2.djl, c.id, f.id, nvl(f2.id, f.id),nvl(f3.id, nvl(f2.id, f.id)) fid
from b2, b1 c, b1 f, b1 f2,b1 f3
where b2.id = c.id
and C.FID = f.id
and f.fid = f2.id(+)
and f2.fid = f3.id(+)
)
group by fid
select
(SELECT a.id FROM 表一 a
where a.父ID = 0
START WITH a.ID = b.ID
CONNECT BY PRIOR a.父ID = a.ID) as root,
sum(b.点击量)
from 表二 b
group by root;
sum(表2.点击量) 点击量 from 表1,表2
where 表1.id=表2.id(+)
start with 表1.父id='0'
connect by prior 表1.id=表1.父id
group by connect_by_root 表1.id