粘贴行列如何转换_sql实现行转列

粘贴行列如何转换_sql实现行转列假如现在我们有这样一张表,命名为TB_STUDENT_SCORE 表中内容为: 可能会用到pivot的常见情况是:需要生成交叉表格报表以汇总数据。例如,假设需要在TB_STUDENT_SCORE表中中查询 学生姓名,各科成绩,总分,平均分,名称以生成报表。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

假如现在我们有这样一张表,命名为TB_STUDENT_SCORE

 

表中内容为:

粘贴行列如何转换_sql实现行转列

 

可能会用到pivot的常见情况是:需要生成交叉表格报表以汇总数据。例如,假设需要在 TB_STUDENT_SCORE表中中查询 学生姓名,各科成绩,总分,平均分,名称以生成报表

如下图所示:

粘贴行列如何转换_sql实现行转列

 

以下是带批注的 PIVOT 语法。

SELECT <非透视的列>,

    [第一个透视的列] AS <列名称>,

    [第二个透视的列] AS <列名称>,

    …

    [最后一个透视的列] AS <列名称>,

FROM

    (<生成数据的 SELECT 查询>)

    AS <源查询的别名>

PIVOT

(

    <聚合函数>(<要聚合的列>)

FOR

[<包含要成为列标题的值的列>]

    IN ( [第一个透视的列], [第二个透视的列],

    … [最后一个透视的列])

) AS <透视表的别名>

<可选的 ORDER BY 子句>;

 

 

 

 

pivot_columnvalue_column 是 PIVOT 运算符使用的分组列。PIVOT 遵循以下过程获得输出结果集:

  1. 对分组列的 input_table 执行 GROUP BY,为每个组生成一个输出行。

    输出行中的分组列获得 input_table 中该组的对应列值。

  2. 通过执行以下操作,为每个输出行生成列列表中的列的值:
    1. 针对 pivot_column,对上一步在 GROUP BY 中生成的行另外进行分组。

      对于 column_list 中的每个输出列,选择满足以下条件的子组:

      pivot_column = CONVERT(<data type of pivot_column>, 'output_column')

    2. 针对此子组上的 aggregate_functionvalue_column 求值,其结果作为相应的 output_column 的值返回。如果该子组为空,SQL Server 将为该 output_column 生成 Null 值。如果聚合函数是 COUNT,且子组为空,则返回零 (0)。

在上述列子中,我们可以用以下SQL完成其功能
1.首先使用PIVOT进行行列转换

 

2.使用开窗函数统计学生成绩

 

3.去除重复行

 

 

最终,得到
粘贴行列如何转换_sql实现行转列

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210093.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IDEA优化配置,提高启动和运行速度[通俗易懂]

    IDEA优化配置,提高启动和运行速度[通俗易懂]IDEA优化配置,提高启动和运行速度IDEA默认启动配置主要考虑低配置用户,参数不高,导致启动慢,然后运行也不流畅,这里我们需要优化下启动和运行配置;找到idea安装的bin目录;D:\ProgramFiles\JetBrains\IntelliJIDEA2017.2.3\bin打开idea.exe.vmoptions这个文件关键的三个参数第一个-Xms是最小启动内存参数第二个-Xmx是最大运行内存参数第三个-XX:ReservedCode…

    2022年5月15日
    228
  • pyqt5 列表控件_树形控件

    pyqt5 列表控件_树形控件马上更

    2022年10月1日
    2
  • web服务:Nginx和Apache的区别

    web服务:Nginx和Apache的区别一、Nginx特点1、轻量级,采用C进行编写,同样的web服务,会占用更少的内存及资源。  2、抗并发,nginx以epollandkqueue作为开发模型,处理请求是异步非阻塞的,负载能力比apache高很多,而apache则是阻塞型的。在高并发下nginx能保持低资源低消耗高性能,而apache在PHP处理慢或者前端压力很大的情况下,很容易出现进程数飙升,从而拒绝服务的现象。  …

    2022年6月1日
    37
  • xshell安装python库_xshell安装jdk

    xshell安装python库_xshell安装jdkxshell安装python下载需要的python.tgz包。https://www.python.org/把下载好的包上传到xshell中,然后解压。tar-zxvfPython-3.6.6.tgz编译安装,进入python文件夹cdPython-3.6.6,执行命令进行编译./configure–prefix=/usr/local/python36//默认安装在/usr/local下make#相当于把源码包里面的代码编译成linux服务器可以识别的代码

    2022年9月9日
    4
  • pycharm2021年激活码刚出【注册码】

    pycharm2021年激活码刚出【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    41
  • linux下编译jrtplib-3.9.1

    一、下载jrtplib、jthreadjrtplib:http://research.edm.uhasselt.be/jori/jrtplib/jrtplib-3.9.1.zipjthread:http://research.edm.uhasselt.be/jori/jthread/jthread-1.3.1.zipCMake:https://cmake.org/downl

    2022年4月8日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号