oracle 树形分组汇总数据问题 急 谢谢各位高手 本帖最后由 Mendax365 于 2012-09-11 23:47:32 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SQL> SELECT m1.root, 2 SUM(m2.datavalue) sum_value, 3 COUNT(*) cnt 4 FROM (SELECT t.tid, 5 t.pid, 6 CONNECT_BY_ROOT(t.tid) root 7 FROM treetable t 8 START WITH t.pid = 1 9 CONNECT BY PRIOR t.tid = t.pid) m1, 10 datatable m2 11 WHERE m1.tid = m2.tid 12 GROUP BY m1.root 13 ORDER BY m1.root; ROOT SUM_VALUE CNT---------- ---------- ---------- 2 115 4 3 30 3 4 45 2 呵呵,没具体实现,感觉差不多,不过那个 count(*) cnt 不会报错吧,可读性不是很好,不知道count的是那个表的数据 可读性不差啊,很清晰。以前没有用过 connect_by_root这个函数。这次学习了。谢谢。结贴 提交未提交的事务问题 oracle 存储过程怎么调用select啊 oracle11g问题 配置Oracle,使它支持MTS下分布事务 求助! 是否有办法向分区表的各个分区同时insert批量数据? 如何纪录错误日志 UNION和ORDER BY冲突的问题如何解决? 数据文件脱机后,再联机,出现消息提示说:数据文件需要介质恢复。为什么? 使用to_char()函数把日期转换成24小时制字符串问题?很急 black_snail(●龙飞虎○) 请进 SQL语句一问 数据库问oracle11g 数据相应字段生成head头,超难。。高手来回答
SQL> SELECT m1.root,
2 SUM(m2.datavalue) sum_value,
3 COUNT(*) cnt
4 FROM (SELECT t.tid,
5 t.pid,
6 CONNECT_BY_ROOT(t.tid) root
7 FROM treetable t
8 START WITH t.pid = 1
9 CONNECT BY PRIOR t.tid = t.pid) m1,
10 datatable m2
11 WHERE m1.tid = m2.tid
12 GROUP BY m1.root
13 ORDER BY m1.root; ROOT SUM_VALUE CNT
---------- ---------- ----------
2 115 4
3 30 3
4 45 2
可读性不差啊,很清晰。以前没有用过 connect_by_root这个函数。这次学习了。谢谢。结贴