楼主: dingjun123

[精华] 使用Partitioned Outer Join实现稠化报表

[复制链接]
论坛徽章:
10000
绿钻
日期:2016-02-22 15:43:08绿钻
日期:2016-03-01 18:19:01绿钻
日期:2016-02-22 15:43:08绿钻
日期:2016-03-01 18:19:01绿钻
日期:2015-12-16 18:42:35绿钻
日期:2015-12-11 00:18:01绿钻
日期:2015-09-10 13:05:08绿钻
日期:2015-12-11 00:18:01绿钻
日期:2015-09-10 13:05:08绿钻
日期:2015-09-10 13:05:08
21#
发表于 2010-8-3 10:56 | 只看该作者
出来了,又可以学习了

使用道具 举报

回复
论坛徽章:
1682
九尾狐狸
日期:2012-09-19 11:12:55九尾狐狸
日期:2012-09-19 11:12:55九尾狐狸
日期:2012-09-27 15:37:10九尾狐狸
日期:2012-09-19 11:12:55九尾狐狸
日期:2012-09-19 11:12:55九尾狐狸
日期:2012-09-19 11:12:55九尾狐狸
日期:2012-09-19 11:12:55九尾狐狸
日期:2012-09-19 11:12:55玉石琵琶
日期:2014-06-26 16:52:29玉石琵琶
日期:2014-06-26 16:52:29
22#
发表于 2010-8-3 11:35 | 只看该作者
原帖由 ljflovewyn 于 2010-8-2 20:21 发表
赞一个,学习了,最近也正在看dingjun的高级SQL,觉得也不错

哪里有啊?

使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
23#
发表于 2010-8-3 23:33 | 只看该作者
写得很完美!

使用道具 举报

回复
论坛徽章:
1088
金色在线徽章
日期:2007-04-25 04:02:08金色在线徽章
日期:2007-06-29 04:02:43金色在线徽章
日期:2007-03-11 04:02:02在线时间
日期:2007-04-11 04:01:02在线时间
日期:2007-04-12 04:01:02在线时间
日期:2007-03-07 04:01:022008版在线时间
日期:2010-05-01 00:01:152008版在线时间
日期:2011-05-01 00:01:342008版在线时间
日期:2008-06-03 11:59:43ITPUB年度最佳技术原创精华奖
日期:2013-03-22 13:18:30
24#
 楼主| 发表于 2010-8-3 23:43 | 只看该作者
原帖由 newkid 于 2010-8-3 23:33 发表
写得很完美!

谢谢newkid大师夸奖,我冲劲十足啊

使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
25#
发表于 2010-8-5 00:33 | 只看该作者
小丁注意,你上传的图片已被替换为“穷护法神”!
关于那个二维稠化,你的三个例子都用了两次外连接,我想先把两个维笛卡儿积会不会好点,因为只有一次外连接:

WITH
v1 AS
(SELECT years,product_name,regions,SUM(sales) sum_sales
FROM t
GROUP BY years,product_name,regions),
v2 AS
(SELECT '东区' regions FROM DUAL UNION ALL
SELECT '南区' regions FROM DUAL UNION ALL
SELECT '西区' regions FROM DUAL UNION ALL
SELECT '北区' regions FROM DUAL
),
v3 AS
(SELECT 2007+LEVEL-1 years FROM DUAL
CONNECT BY LEVEL<3 )
SELECT v5.years,v1.product_name,v5.regions,v1.sum_sales
FROM v1 PARTITION BY (v1.product_name)
RIGHT JOIN (SELECT regions,years FROM v2,v3) v5
ON v1.regions = v5.regions AND v1.years = v5.years
ORDER BY 2,1,3;

使用道具 举报

回复
论坛徽章:
38
授权会员
日期:2005-10-30 17:05:332012新春纪念徽章
日期:2012-02-13 15:12:09现任管理团队成员
日期:2011-11-07 09:46:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41ITPUB9周年纪念徽章
日期:2010-10-08 09:31:21版主3段
日期:2012-05-15 15:24:112009新春纪念徽章
日期:2009-01-04 14:52:282010新春纪念徽章
日期:2010-03-01 11:06:202009日食纪念
日期:2009-07-22 09:30:00祖国60周年纪念徽章
日期:2009-10-09 08:28:00
26#
发表于 2010-8-5 04:07 | 只看该作者
兔兔 又出精了

使用道具 举报

回复
论坛徽章:
1088
金色在线徽章
日期:2007-04-25 04:02:08金色在线徽章
日期:2007-06-29 04:02:43金色在线徽章
日期:2007-03-11 04:02:02在线时间
日期:2007-04-11 04:01:02在线时间
日期:2007-04-12 04:01:02在线时间
日期:2007-03-07 04:01:022008版在线时间
日期:2010-05-01 00:01:152008版在线时间
日期:2011-05-01 00:01:342008版在线时间
日期:2008-06-03 11:59:43ITPUB年度最佳技术原创精华奖
日期:2013-03-22 13:18:30
27#
 楼主| 发表于 2010-8-5 09:56 | 只看该作者
原帖由 newkid 于 2010-8-5 00:33 发表
小丁注意,你上传的图片已被替换为“穷护法神”!
关于那个二维稠化,你的三个例子都用了两次外连接,我想先把两个维笛卡儿积会不会好点,因为只有一次外连接:

WITH
v1 AS
(SELECT years,product_name,regions,SUM(sales) sum_sales
FROM t
GROUP BY years,product_name,regions),
v2 AS
(SELECT '东区' regions FROM DUAL UNION ALL
SELECT '南区' regions FROM DUAL UNION ALL
SELECT '西区' regions FROM DUAL UNION ALL
SELECT '北区' regions FROM DUAL
),
v3 AS
(SELECT 2007+LEVEL-1 years FROM DUAL
CONNECT BY LEVEL


这个的确要点,如果v1数据量大的话,两次外连接扫描的行就比较多了,而v2和v3的笛卡尔积数据量没有多少,学习了

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
9
生肖徽章2007版:牛
日期:2009-03-10 21:26:492010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:葡萄牙
日期:2010-02-22 14:35:242010新春纪念徽章
日期:2010-03-01 11:19:092010广州亚运会纪念徽章:射击
日期:2010-09-08 23:42:12ITPUB9周年纪念徽章
日期:2010-10-08 09:31:212010广州亚运会纪念徽章:拳击
日期:2010-10-30 00:46:582011新春纪念徽章
日期:2011-02-18 11:43:322011新春纪念徽章
日期:2011-03-01 08:49:39
28#
发表于 2010-8-8 16:49 | 只看该作者
完美、精辟,教科书般的谨慎,绝对的MVP(Most Valuable Post)

使用道具 举报

回复
论坛徽章:
101
授权会员
日期:2008-11-21 09:09:58ITPUB元老
日期:2011-09-01 21:08:40
29#
发表于 2010-8-24 13:35 | 只看该作者
赞一个,学习了。

使用道具 举报

回复
论坛徽章:
4
2011新春纪念徽章
日期:2011-02-18 11:43:33ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042012新春纪念徽章
日期:2012-01-04 11:53:542013年新春福章
日期:2013-02-25 14:51:24
30#
发表于 2010-8-27 22:54 | 只看该作者
good  !!!!!!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表