文档章节

mysql 列转行,合并字段

m243043962
 m243043962
发布于 2017/08/03 12:03
字数 319
阅读 67
收藏 0

精选30+云产品,助力企业轻松上云!>>>

数据表: 

列转行:利用max(case when then)

max---聚合函数 取最大值

(case course when '语文' then score else end---判断

 as 语文---别名作为列名

 

复制代码

SELECT
    `name`,
    MAX(
        CASE course
        WHEN  '语文' THEN
            score
        END
    ) AS 语文,
    MAX(
        CASE course
        WHEN '数学' THEN
            score
        END
    ) AS 数学, 
    MAX(
        CASE course
        WHEN course='英语' THEN
            score
        END
    ) AS 英语
FROM
    student
GROUP BY `name`
; 

复制代码

 

合并字段显示:利用group_cancat(course,”:”,”score”)

复制代码

SELECT
    `name`,
    GROUP_CONCAT(course, ":", score) AS 成绩
FROM
    student
GROUP BY
    `name`;

复制代码

group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果。
比较抽象,难以理解。

通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来。要返回哪些列,由函

数参数(就是字段名)决定。分组必须有个标准,就是根据group by指定的列进行分组。

group_concat函数应该是在内部执行了group by语句,这是我的猜测。

1.测试语句:
SELECT
    GROUP_CONCAT(`name`)
FROM
    student
GROUP BY
    `name`;
结果去查找name中去查找哪些值是一样的,如果相等,就全部列出来,以逗号分割进行列出,如下:

group_concat('name')
 



2.测试:
SELECT
    GROUP_CONCAT(`name`)
FROM
    student
;
结果:
group_concat('name')
m243043962
粉丝 0
博文 70
码字总数 34357
作品 0
黄冈
程序员
私信 提问
加载中
请先登录后再评论。
MySQL 行转列 列转行

转载:《mysql 行转列 列转行》 行转列 准备数据: CREATE TABLE tb_score( )ENGINE = INNODB DEFAULT CHARSET = utf8; INSERT INTO tb_score(userid,subject,score) VALUES ('001','语文',9......

osc_zt8a0qx3
2019/10/30
1
0
MySQL -- 行转列 -- GROUP_CONCAT -- MAX(CASE WHEN THEN)

列转行: 多列转多行 行转列:多行转多列 以下转自:https://www.cnblogs.com/ClassNotFoundException/p/6860615.html 列转行:利用max(case when then) SELECT FROM GROUP BY ; 合并字段显示...

osc_utu401d2
2019/06/13
6
0
mysql 行转列 列转行

行转列: 多行转多列 列转行:多列转多行 以下转自:https://www.cnblogs.com/xiaoxi/p/7151433.html 一、行转列 即将原本同一列下多行的不同内容作为多个字段,输出对应内容。 建表语句 DR...

osc_utu401d2
2019/06/13
2
0
mysql 列转行,合并字段

数据表: 列转行:利用max(case when then) SELECT FROM GROUP BY ; 合并字段显示:利用group_cancat(course,”:”,”score”) SELECT FROM GROUP BY SELECT FROM GROUP BY SELECT FROM ; SEL......

osc_y7snjgcc
2019/02/19
2
0
Mysql学习笔记整理手册

[TOC]继上一篇博客《Oracle学习笔记整理手册》之后,我再写一篇Mysql版本的 PS:本博客收录自己工作中遇到学到的一些mysql技能,有时间就更新整理一下 (1) strtodate oracle有todate函数,M...

osc_vwv0jnr8
2019/02/16
2
0

没有更多内容

加载失败,请刷新页面

加载更多

FusionConputer热迁移过程记录

一、迁移原因   云平台集群内存资源不足,已超过设定阈值,内存资源已紧急告警。 二、解决思路   启用新集群,并将老集群中部分虚拟机热迁移至新集群 三、迁移的前提条件   1.被迁移虚...

osc_flwkfqx5
21分钟前
13
0
使用 ServerLess 实现云原生

笔者有幸经历了 IaaS(OS)、CaaS(Container),在这两年又听到了 FaaS(Funtion),这也是运维开发领域里的第三个阶段了吧,今天我将从一个不懂得开发的系统工程师视角以及结合之前的几篇系...

osc_t59f3rc0
23分钟前
18
0
作为软件测试的前辈你能不能给迷茫中的我一点建议?

一、为什么迷茫? 假如前面迷雾一片,作为司机的你,敢踩油门往前冲吗? 大多数人是不敢的。 因为你看不清自己的位置和发展的方向。 同理,一切对未来的恐慌、畏惧、纠结、迷茫,也是因为你看...

osc_auwur47t
25分钟前
12
0
神经机器翻译的直观解释

作者|Renu Khandelwal 编译|VK 来源|Towards Data Science 什么是神经机器翻译? 神经机器翻译是一种将一种语言翻译成另一种语言的技术。一个例子是把英语转换成印地语。让我们想想,如果你在...

osc_u61lmlkv
25分钟前
0
0
用Tableau实现动画数据可视化

作者|PRANAV DAR 编译|VK 来源|Analytics Vidhya 概述 动画可视化是一种艺术,它很容易在Tableau中创造出来 我们将在这里使用开源数据集,并在Tableau中创建自己的动画可视化 介绍 我是动画视...

osc_1oqjcug0
26分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部