python 列转行_SQL 行转列,列转行「建议收藏」

python 列转行_SQL 行转列,列转行「建议收藏」SQL行转列,列转行行列转换在做报表分析时还是经常会遇到的,今天就说一下如何实现行列转换吧。行列转换就是如下图所示两种展示形式的互相转换行转列假如我们有下表:SELECT*FROMstudentPIVOT(SUM(score)FORsubjectIN(语文,数学,英语))通过上面SQL语句即可得到下面的结果PIVOT后跟一个聚合函数来拿到结果,FOR后面跟的科目是我们要…

大家好,又见面了,我是你们的朋友全栈君。

SQL 行转列,列转行

行列转换在做报表分析时还是经常会遇到的,今天就说一下如何实现行列转换吧。

行列转换就是如下图所示两种展示形式的互相转换

python 列转行_SQL 行转列,列转行「建议收藏」

行转列

假如我们有下表:

python 列转行_SQL 行转列,列转行「建议收藏」

SELECT *

FROM student

PIVOT (

SUM(score) FOR subject IN (语文, 数学, 英语)

)

通过上面 SQL 语句即可得到下面的结果

python 列转行_SQL 行转列,列转行「建议收藏」

PIVOT 后跟一个聚合函数来拿到结果,FOR 后面跟的科目是我们要转换的列,这样的话科目中的语文、数学、英语就就被转换为列。IN 后面跟的就是具体的科目值。

当然我们也可以用 CASE WHEN 得到同样的结果,就是写起来麻烦一点。

SELECT name,

MAX(

CASE

WHEN subject=’语文’

THEN score

ELSE 0

END) AS “语文”,

MAX(

CASE

WHEN subject=’数学’

THEN score

ELSE 0

END) AS “数学”,

MAX(

CASE

WHEN subject=’英语’

THEN score

ELSE 0

END) AS “英语”

FROM student

GROUP BY name

使用 CASE WHEN 可以得到和 PIVOT 同样的结果,没有 PIVOT 简单直观。

列转行

假设我们有下表 student1

python 列转行_SQL 行转列,列转行「建议收藏」

SELECT *

FROM student1

UNPIVOT (

score FOR subject IN (“语文”,”数学”,”英语”)

)

通过 UNPIVOT 即可得到如下结果:

python 列转行_SQL 行转列,列转行「建议收藏」

我们也可以使用下面方法得到同样结果

SELECT

NAME,

‘语文’ AS subject ,

MAX(“语文”) AS score

FROM student1 GROUP BY NAME

UNION

SELECT

NAME,

‘数学’ AS subject ,

MAX(“数学”) AS score

FROM student1 GROUP BY NAME

UNION

SELECT

NAME,

‘英语’ AS subject ,

MAX(“英语”) AS score

FROM student1 GROUP BY NAME

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

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

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


相关推荐

  • angsrom linux opkg update 失败 解决方案[通俗易懂]

    angsrom linux opkg update 失败 解决方案[通俗易懂]在这篇文章的指导下解决了,Opkgupdate失败的问题,问题出在开发板的网络DNS配置,开发板可以访问局域网的,但是不能访问互联网,另外angstromlinux软件源feeds地址改变了不在是原来的所有需要更改/etc/opkg/*下的conf文件。这样就可以执行opkgupdate命令来安装软件了How-toupdateopkgpackagefeeds

    2022年5月12日
    102
  • pytest指定用例_python测试用例

    pytest指定用例_python测试用例前言测试用例在设计的时候,我们一般要求不要有先后顺序,用例是可以打乱了执行的,这样才能达到测试的效果.有些同学在写用例的时候,用例写了先后顺序,有先后顺序后,后面还会有新的问题(如:上个用例返回

    2022年7月31日
    14
  • 黑苹果 服务器系统安装教程,黑苹果安装教程,详细教您黑苹果怎么安装[通俗易懂]

    黑苹果 服务器系统安装教程,黑苹果安装教程,详细教您黑苹果怎么安装[通俗易懂]科技发展至今,安装黑苹果的方式多种多样,最开始的变色龙引导,到现在的clover引导,正所谓通往罗马的路不止一条啊,今天我们要说的是黑苹果安装方式,那黑苹果怎么安装?下面,小编跟大家讲解安装黑苹果的操作流程了。随着iphone的流行,苹果大行其道。越来越多的应用开发者加入苹果的行列,黑苹果的升级虽然说不像白苹果升级那样简单,但是只要掌握了方法,我们也可以很简单地完成黑苹果的安装。下面,小编跟大家分…

    2022年6月11日
    49
  • 分布式 – 谈谈你对分布式的理解,为什么引入分布式?

    分布式 – 谈谈你对分布式的理解,为什么引入分布式?不啰嗦,我们直接开始!划重点:真正了解分布式系统的概念,日后工作中具有分布式系统设计思想。 能否在设计中对系统稳定性方面考虑周全。 能构建高QPS健壮的系统架构。1、面试官:那谈谈你对分布式系统的理解问题分析:各种分布式框架层出不穷,SpringCloud,阿里的Dubbo,无论使用哪一个,原理都相同,考察下基本概念掌握的如何。答:为了解决传统单体服务架构带来的各种问题,代码数量庞大,迭代测试维护困难,可能因为一处改动测试不到位造成整个服务瘫痪等问题,分布式系统就是将一

    2022年6月21日
    30
  • Hash一致算法_一致性hash是如何做数据迁移

    Hash一致算法_一致性hash是如何做数据迁移概述这里存在一种场景,当一个服务由多个服务器组共同提供时,key应该路由到哪一个服务.这里假如采用最通用的方式key%N(N为服务器数目),这里乍一看没什么问题,但是当服务器数目发送增加或减少时,分配方式则变为key%(N+1)或key%(N-1).这里将会有大量的key失效迁移,如果后端key对应的是有状态的存储数据,那么毫无疑问,这种做法将导致服务器间大量的数据迁移,从而照成

    2022年9月1日
    5
  • 计算机病毒永恒之蓝_永恒之蓝攻击win10

    计算机病毒永恒之蓝_永恒之蓝攻击win10做技术的要一直保持激情,和对新鲜事物的敏感性,从中寻找到快乐—-JobBird  最近永恒之蓝病毒肆虐,简直让电脑用户闻风丧胆,一旦中招真的是毁灭性的,虽然自己写不出来这么牛逼的程序,也没有这样的耐心去分析它究竟是怎么做到的,或者怎么解除威胁。基于技术宅的好奇心免不了对其指手画脚一番。  什么是病毒?  网上跟教科书上都有非常明确的定义,什么什么一大堆,看一下就过了,反正也

    2022年10月16日
    2

发表回复

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

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