文档章节

mysql 列转行,合并字段

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

数据表: 

列转行:利用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')

本文转载自:http://www.cnblogs.com/thomas12112406/p/5813394.html

共有 人打赏支持
m243043962
粉丝 0
博文 70
码字总数 34357
作品 0
黄冈
程序员
私信 提问
oracle 分析函数

Oracle 行列转换函数 create table exam_record(id integer primary key,username varchar2(40),classtype varchar2(40),classname varchar2(200),score number(20,2));insert into exam_re......

guibawudi1985
2017/06/07
0
0
Oracle 行转列pivot 、列转行unpivot 的Sql语句总结

转自:http://blog.csdn.net/xiaokui_wingfly/article/details/42419207 多行转字符串 这个比较简单,用||或concat函数可以实现 实际上就是拆分字符串的问题,可以使用 substr、instr、regex...

Amui
2016/06/29
373
0
PostgreSQL Oracle 兼容性 - 行列变换(pivot unpivot) (tablefunc, crosstab)

标签 PostgreSQL , Oracle , 行列变换 , pivot , unpivot , tablefunc , crosstab , json , jsonb 背景 行列转换是OLAP应用场景中,对数据透视常用的SQL之一。 Oracle pivot 行转列 语法如下...

德哥
10/05
0
0
大数据之Linux早课10.7

1.MySQL哪些字段类型 2.建表一般我们会设置第一个字段为ID,自增长的主键,那么主键是非空和唯一约束的组合体,那么可不可以根据业务,单独设置其他字段为 非空约束或唯一约束? 3.拓展题,你...

hnairdb
10/17
0
0
SQL 经典问题:列转行

情景分析: 如上文 经典SQL问题: 行转列所示情节,反过来。 数据库数据为: 处理后效果(id可以不要): 方法一: SELECT*FROM(SELECTname,'语文'ascourse, 语文asscoreFROMgrade2unionall...

闪电
2015/09/19
56
0

没有更多内容

加载失败,请刷新页面

加载更多

Ugly Number(leetcode263)

Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. Example 1: Input: 6Output: true......

woshixin
13分钟前
0
0
深度模型从研者 眼里的 似然估计 & Hessain 海森矩阵 & Fisher Information (费雪信息)

深度模型的训练的基本依据是最小化模型拟合数据的误差。旨在不仅知其然(如何构建和训练一个深度模型),还应知其所以然(为什么这样训练,可以做哪些优化)。我们就会发现,有很多研究者,在...

刘小米_思聪
17分钟前
0
0
阿里巴巴智能监控新场景的探索

摘要: 智能监控是智能运维的子领域,详细分析。 作者简介 王肇刚 阿里巴巴全球运行指挥中心高级技术专家 智能监控是智能运维的子领域,我们说的监控,探讨的更多是在监控策略,因为可能从数...

阿里云官方博客
20分钟前
1
0
【双十二】12 月 12 日 12 点 12 分限量抢福利,云计算不剁手!

活动详情 1.首充豪礼 双十二当日,新用户首充 200 元送 200 元代金券!仅限前 88 名!先到先得!拼手速!(新用户指 12 月 12 日前已完成注册但从未充值过的用户)
 2.超值返券 双十二当日,...

七牛云
45分钟前
3
0
Calculate Linux 发布 18 LXQt是基于Gentoo的发行版

导读 Calculate Linux 是一个基于 Gentoo 并与 Gentoo 完全兼容的滚动更新发行版家族,专为企业环境下的快速部署而优化。其提供多个不同的分支版本,分别适用于桌面、服务器等应用场景。该项...

问题终结者
48分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部