76.Oracle数据库SQL开发之 高级查询——使用PIVOT
来源:互联网 发布:mac如何缩小照片kb 编辑:程序博客网 时间:2024/05/16 08:11
76.Oracle数据库SQL开发之 高级查询——使用PIVOT
欢迎转载,转载请标明出处: http://blog.csdn.net/notbaron/article/details/49975881
PIVOT子句是11g的新增特性,可以再查询输出中将行转为列,同时对数据使用聚合函数。11g也新增了UNPIVOT子句,可以在查询输出中将列旋转为行。
对于了解大量数据的总体趋势是非常有用的。
查询2003年前4个月产品类型#1,#2,#3的销量,注意查询输出的各个数据展示了每个产品类型在每个月的销量和。
store@PDB1> select * from (
selectmonth,prd_type_id,amount from all_sales where year=2003
andprd_type_id in ( 1,2,3))
pivot (sum(amount) for month in ( 1 as jan,2 as feb,3 as mar,4 as apr))
order byprd_type_id;
PRD_TYPE_ID JAN FEB MAR APR
----------- ---------- -------------------- ----------
1 38909.04 70567.9 91826.98 120344.7
2 14309.04 13367.9 16826.98 15664.7
3 24909.04 15467.9 20626.98 23844.7
PIVOT是一个功能强大的工具,可以帮助您了解各种产品在各个月的销售趋势。
这个例子分解成一下结构元素:
l 一个内部查询和一个外部查询。内部查询从all_sales表中得到月份、产品类型和销量并将结果传递给外部查询
l SUM(amount) FOR month IN (1 as jan, 2 as feb, 3 as mar, 4 as apr)这一行属于PIVOT子句
n SUM函数计算出各产品类型在前4个月的销量。
n 将all_sales表的month列作为被转换的列。这就意味着在输出结果中,月份显示为列。实际上是对行进行旋转或转换,以便将月份显示为列。
l 最后一行ORDER BY 简单的按产品类型对输出数据排序。
- 76.Oracle数据库SQL开发之 高级查询——使用PIVOT
- 60.Oracle数据库SQL开发之 高级查询——使用分析函数之评级函数
- 62.Oracle数据库SQL开发之 高级查询——使用分析函数之窗口函数
- 54.Oracle数据库SQL开发之 高级查询——使用集合操作符
- 55.Oracle数据库SQL开发之 高级查询——使用TRANSLATE函数
- 56.Oracle数据库SQL开发之 高级查询——使用DECODE函数
- 57.Oracle数据库SQL开发之 高级查询——使用CASE函数
- 59.Oracle数据库SQL开发之 高级查询——使用扩展的GROUP BY子句
- 63.Oracle数据库SQL开发之 高级查询——使用报表函数
- 64.Oracle数据库SQL开发之 高级查询——使用LAG和LEAD函数
- 65.Oracle数据库SQL开发之 高级查询——使用FIRST和LAST函数
- 66.Oracle数据库SQL开发之 高级查询——使用线性回归函数
- 67.Oracle数据库SQL开发之 高级查询——使用假想评级与分布函数
- 68.Oracle数据库SQL开发之 高级查询——使用MODEL子句
- 79.Oracle数据库SQL开发之 高级查询——使用UNPIVOT子句
- 61.Oracle数据库SQL开发之 高级查询——使用分析函数之反百分点函数
- 58.Oracle数据库SQL开发之 高级查询——层次化查询
- 78.Oracle数据库SQL开发之 高级查询——转换中使用多个聚合函数
- 【iOS】自定义导航栏(一)
- 继续收集Docker书
- 如何在Cocos2D游戏中实现A*寻路算法(一)
- 列车调度-栈混洗
- Java权限修饰符解析
- 76.Oracle数据库SQL开发之 高级查询——使用PIVOT
- 杭电ACM2011--多项式求和
- 调用外部的搜索引擎(百度和Google)
- 77.Oracle数据库SQL开发之 高级查询——转换多个列
- 九度oj-1518-反转链表
- Centos6.4下OpenVPN在windows和centos下客户端安装与配置详解
- 哇哦~下雪啦~冬天来了
- 广播与服务——IP拨号器前加17951
- java中sleep和wait区别