用树形函数计算零件数
来源:互联网 发布:开淘宝店要多少钱押金 编辑:程序博客网 时间:2024/05/14 20:27
样例数据如下:
要求
可以直接通过树形函数取得叶子节点信息
这儿用了个小技巧,用dbms_aw.eval_number函数处理了树形函数的返回值,也可以用with语句,这时就不需要树形函数了
CREATE OR REPLACE VIEW t AS (SELECT 'B' a, 'A' b, 2 n FROM dual UNION ALL SELECT 'C' a, 'A' b, 4 n FROM dual UNION ALL SELECT 'D' a, 'B' b, 3 n FROM dual UNION ALL SELECT 'E' a, 'B' b, 3 n FROM dual UNION ALL SELECT 'F' a, 'B' b, 2 n FROM dual UNION ALL SELECT 'G' a, 'C' b, 4 n FROM dual UNION ALL SELECT 'H' a, 'C' b, 2 n FROM dual UNION ALL SELECT 'I' a, 'H' b, 5 n FROM dual);
要求
做 1个A ,需要 2个 B, 4个 C 做 1个B ,需要 3个 D, 3个 E, 2个 F做 1个C ,需要 4个 G, 2个 H做 1个H ,需要 5个 I 问 :做 5个A一共需要多少个材料 ?
可以直接通过树形函数取得叶子节点信息
SQL> WITH x1 AS 2 (SELECT a, b, n, ltrim(sys_connect_by_path(to_char(n), '*'), '*') AS cnt 3 FROM t 4 WHERE connect_by_isleaf = 1 5 START WITH b = 'A' 6 CONNECT BY (PRIOR a) = b) 7 SELECT dbms_aw.eval_number(cnt) AS cnt, a FROM x1; CNT A---------- - 6 D 6 E 4 F 16 G 40 I5 rows selected
这儿用了个小技巧,用dbms_aw.eval_number函数处理了树形函数的返回值,也可以用with语句,这时就不需要树形函数了
SQL> WITH x0(a,b,n) AS 2 (SELECT a, b, n FROM t WHERE b = 'A' 3 UNION ALL 4 SELECT t.a, t.b, t.n * x0.n AS n FROM x0 INNER JOIN t ON t.b = x0.a) 5 SELECT x0.n,x0.a FROM x0 LEFT JOIN t ON t.b = x0.a WHERE t.b IS NULL 6 ORDER BY 2; N A---------- - 6 D 6 E 4 F 16 G 40 I5 rows selected
0 0
- 用树形函数计算零件数
- 用树形+eval_number进行计算
- 生成函数/拆分数计算
- 调用函数计算反序数
- 7.3用函数计算两个数的最大值
- I00020 计算卡特兰数函数
- js 付浮点数计算函数
- 函数计算两个时间间隔年数,月数,天数
- php-Arrays 函数-array_diff_uassoc-用回调函数做索引检查来计算数组的差值
- php-Arrays 函数-array_diff_ukey-用回调函数对键名比较计算数组的差集
- php-Arrays 函数-array_intersect_ukey-用回调函数比较键名来计算数组的交集
- 用 DATEDIF函数 计算两个日期之间的年\月\日间隔数
- C语言基础 用sizeof函数计算二维数组的行数和列数
- mysql 函数 length 是计算字节数 char_length是计算字符数
- 计算数
- [日期时间]函数(-),计算两个时间之间的秒数
- 转载和积累系列 - JS 浮点数安全计算函数
- 简单函数调用 计算1-100每个数的平方
- 分块。。
- 憋了您咧,我的大学的大二。
- hibernate缓存原理及设置
- UVA 1514 - Piece it together(二分图匹配+拆点)
- Android ActionBar,样式修改,常见问题
- 用树形函数计算零件数
- HDU-2049-不容易系列之(4)——考新郎
- Ubuntu终端下通过wget获取JDK
- Java System.arraycopy 针对同一数组和两个数组
- 2547. Subsequence
- 某数据系统的形成过程
- CentOS6.5上的trac安装(v1.0.1)
- java经典编程题(13-15)
- KMP复习整理