首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SQL 转列

    如果你想熟练写各种统计报表的 SQL,那么转列是你绕不开的一个点,你必须得掌握它。 转列嘛,就是在原来的数据集上减少行数,增加列的数量。具体是什么情况,大家请往下看。...NULL) (NULL) 小李子 (NULL) 4.3 (NULL) 这个结果和我们想要的结果有点接近了,只是每个学生还出现在多行数据中,每个学生应该只对应一数据才合理...把多行的数据聚合成一可以使用聚合函数,max()、min()、sum() 在这里都可以使用。因为我们要看到的是每个学生的成绩,所以要将 name 字段作为分组字段。...MAX( CASE WHEN grade = 2020 THEN POINT END) AS '2020' FROM t GROUP BY NAME 写转列...(不包括动态转列)不难,关键得知道分析哪些字段要作为分组的依据,哪个字段将拆分成多个列。

    94720

    SQL教程:转列

    ”这个结果 CASE WHEN Type IN ('a','b') THEN '第一类' WHEN Type IN ('a') THEN '第二类' ELSE '其他类' END 转列...CASE用的比较广泛的功能就是转列,就是将记录里的数据按条件转换成具体的列。...THEN 分数 ELSE 0 END) 数学, MAX(CASE 课程 WHEN N'物理' THEN 分数 ELSE 0 END) 物理 FROM Score GROUP BY 姓名 执行结果如下: 转列新方法...版之后有单独的行列转换功能PIOVT,以下查询同样可以得到上面的结果: SELECT * FROM Score PIVOT( MAX(分数) FOR 课程 IN (语文,数学,物理)) A 其中FOR后面的是我们即将进行行转列的列部分...IN里面的是我们转列之后的列 MAX是聚合IN里面的内容,也可以是其他聚合函数:SUM,MIN,COUNT等 PIVOT写法比较固定,是CASE WHEN的一种简略写法。

    8510

    mysql转列简单例子_mysql转列、列转行示例

    最近在开发过程中遇到问题,需要将数据库中一张表信息进行行转列操作,再将每列(即每个字段)作为与其他表进行联表查询的字段进行显示。 借此机会,在网上查阅了相关方法,现总结出一种比较简单易懂的方法备用。...一、转列:将原本同一列下多行的不同内容作为多个字段,输出对应内容。...效果图: 数据库表中的内容: 转换后: 可以看出,这里转列是将原来的f_subject字段的多行内容选出来,作为结果集中的不同列,并根据f_student_id进行分组显示对应的f_score;...但是正常情况下,一个student对应一个subject只有一个分数,因此可以使用SUM()、MAX()、MIN()、AVG()等聚合函数都可以达到转列的效果。

    4.8K10

    数据库转列的sql语句(zt)

    研究意义         这是个并不复杂的问题,但却是数据库中行转列的一个典型例子,只要把这个抽象出来的具有普遍意义的问题研究透彻,其他类似的复杂问题迎刃而解。...问题分析        首先介绍下行转列的概念,也许书上并没有这个概念,转列说的是这样一类问题:有时候为了数据库表的设计满足用户的动态要求(比如添加字段),我们采用定义字段名表,然后定义一个字段值的表...如果同时做到了数据存储时列的增加转化为的增加,数据提取时又可得到列增加了的数据,数据库表的这种设计就对用户透明了。        ...本文前面提出的这个问题就是一个典型的在数据提取时要把以增加形式的数据转化为以列增加形式的数据。为什么这样说呢?...我们注意subject字段,subject里的内容在数据库存储时是以不同数据的形式,换言之,是以增加的形式,而输出时,这里面的内容我们要变成字段名了。

    89410
    领券