当前位置:网站首页 > Haskell函数式编程 > 正文

pivot函数 oracle(pivot函数的作用)



基本介绍】
格式】:pivot(聚合函数 for 需要转为列的字段名 in(需要转为列的字段值))

【说明】:实现将指定字段的字段值转换为列的效果。

【环境】:如下图是样例展示所使用的oracle版本。

【准备样例数据】
样例数据如下图所示:

NAME-学生姓名,SUBJECT-考试科目,GRADES-考试成绩。

【样例展示1】
实行如下sql语句:

select * from T_Student_Grades
pivot
(
sum(grades)
for name in('张三','李四','王五')
)

返回结果如下:按指定科目统计所有学生的总成绩,并将学生姓名字段行转列显示(此时虽然用到了聚合函数sum,由于SUBJECT字段也一并显示,因此sum函数并没有起到效果,显示依旧是每一个学生的各科具体成绩)。

【样例展示2】
实行如下sql语句:

select * from T_Student_Grades
pivot
(
avg(grades)
for name in ('张三' as 张三,'李四' as 李四,'王五' as 王五)
)

返回结果如下:按指定科目统计所有学生的平均成绩,并将学生姓名字段行转列,显示别名(此时虽然用到了聚合函数avg,由于SUBJECT字段也一并显示,因此avg函数并没有起到效果,显示依旧是每一个学生的各科具体成绩)。

【样例展示3】
实行如下sql语句:

select * from (select name,grades from T_Student_Grades)
pivot
(
sum(grades)
for name in ('张三','李四','王五')
)

返回结果如下:统计每一个学生的所有科目总成绩,并将学生姓名字段行转列(SUBJECT字段没有显示)。

【样例展示4】
实行如下sql语句:

select * from T_Student_Grades
pivot
(
max(grades)
for name in ('张三' as 张三,'李四' as 李四,'王五' as 王五)
)
where subject='数学'

返回结果如下:按指定科目统计所有学生的最高成绩,并将学生姓名字段行转列,并且只显示数学这一科目的成绩(此时虽然用到了聚合函数max,由于SUBJECT字段也一并显示,因此max函数并没有起到效果,依旧是显示每一个学生的各科具体成绩)。

【样例展示5】
实行如下sql语句:

select * from T_Student_Grades
pivot
(
min(grades)
for name in ('张三' as 张三,'李四' as 李四,'王五' as 王五)
)
where 张三='90'

返回结果如下:按指定科目统计所有学生的最低成绩,并将学生姓名字段行转列,并且只显示数学这一科目的成绩(此时虽然用到了聚合函数max,由于SUBJECT字段也一并显示,因此max函数并没有起到效果,依旧是显示每一个学生的各科具体成绩)。

【样例展示6】
实行如下sql语句(in中使用子查询):

select * from T_Student_Grades
pivot
(
count(grades)
for name in (select distinct name from T_Student_Grades)
)

报错提示:ORA-00936:确实表达式,如下图所示,看来in不支持子查询。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/_/article/details/

到此这篇pivot函数 oracle(pivot函数的作用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • can报文格式(CAN报文格式转换工具)2025-01-16 21:45:09
  • 支付方式T/T(支付方式T/T就是OA吗)2025-01-16 21:45:09
  • vbf文件格式(怎么用vb打开frm文件)2025-01-16 21:45:09
  • mysql窗口函数是什么(mysql 窗口函数有哪些)2025-01-16 21:45:09
  • vbfor循环step(vbfor循环语句格式)2025-01-16 21:45:09
  • sigmoid函数怎么读(sigmrnd函数)2025-01-16 21:45:09
  • 单片机编程实例大全(单片机编程入门视频教程)2025-01-16 21:45:09
  • 编程入门教程在线看(编程入门基础教程)2025-01-16 21:45:09
  • 聚合函数为什么不允许where中(聚合函数不允许出现在什么子句中)2025-01-16 21:45:09
  • console口配置命令大全(console口连接方式)2025-01-16 21:45:09
  • 全屏图片