mysql---行转列(代码片段)

Shall潇 Shall潇     2022-12-05     614

关键词:

MySQL—行转列

一、行转列

1、SqlServer和Orcle中可以使用pivot行转列函数快速实现,而MySQL中没有

pivot:

SELECT *
FROM student
PIVOT (
    SUM(score) FOR subject IN (语文, 数学, 英语)
)

2、MySQL实现行转列

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

二、列转行

unpivot
1、其他转换

SELECT *
FROM student1
UNPIVOT (
    score FOR subject IN ("语文","数学","英语")
)

2、MySQL转换

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

开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系

leetcode-mysql练习2(180/181/1777/182/196/197/1179)(行转列)(datediff/timestampdiff)(代码片段)

MySQL练习2180.连续出现的数字题目描述表:Logs+-------------+---------+|ColumnName|Type|+-------------+---------+|id|int||num|varchar|+-------------+---------+id是这个表的主键。编写一个S 查看详情

mysql行转列-》动态行转列-》动态行转列带计算

PivotTableUsingMySQL-ACompleteGuide|WebDevZoomhttp://webdevzoom.com/pivot-table-using-mysql/Cross-Tabulation(PivotTables)withMySQL-CodeProjecthttps://www.codeproject.com/articles/363339/cross-tabulati 查看详情

mysql数据行怎么转为列(代码片段)

阅读目录行转列1、使用case...when....then进行行转列2、使用IF()进行行转列3、利用SUM(IF())生成列+WITHROLLUP生成汇总行,并利用IFNULL将汇总行标题显示为TotalIFNULL()函数WITHROLLUP4、利用SUM(IF())生成列+UNION生成汇总行,并利用IFNULL... 查看详情

sqlsql语句实现行转列的3种方法(代码片段)

SQLsql语句实现行转列的3种方法系列文章目录文章目录SQLsql语句实现行转列的3种方法系列文章目录前言第一种方式:静态行转列第二种方式:用povit行转列第三种方式:用存储过程行转列前言将列值旋转为列名(即行转... 查看详情

oracle行转列(代码片段)

行转列,例子:统计各科各出院情况人数withtas( SELECTb.科室ID,a.患者ID,a.resultFROM患者信息表awherea.出院时间>=to_date(\'2021-6-100:00:00\',\'yyyy-MM-ddhh24:mi:ss\')anda.出院时间<=to_date(\'2021-6-2023:59:59\',\'yyyy-MM-ddhh24:mi:s 查看详情

mysql行转列与列转行

参考技术A建表:新增数据:源数据:行转列后:建表:新增数据:源数据:列转行后: 查看详情

行转列(代码片段)

文章目录使用场景数据源行转列创建个月视图将个月视图拼接成完整月度数据视图将完整月度数据视图进行格式化图表展示效果计算月度平均值创建月度数据平均值视图图表展示效果使用场景  有时我们在进行图表数据统计时... 查看详情

hivesql行列转换(行转列,列转行)(代码片段)

在Hivesql应用中会遇到“行转列”和“列转行”的场景,下面介绍其基本使用语法。1.行转列:关键字:collect_set()/collect_list()、concat_ws()1)collect_set()/collect_list():collect_set()函数只接受基本数据类型,作用是... 查看详情

mysql行转列问题

...7-26qiangxiandate2016-12-28shangyexiandate2016-05-04casewhen就可以完成行转列selectcaseidwhen\'inspectiondate\'then\'2016-07-26\'when\'qiangxiandate\'then\'2016-12-28\'when\'shangyexiandate\'then\'2016-05-04\'else\'\'endfrom表名。。。。参考技术A用casewenthenend 查看详情

sql面试题:行转列(代码片段)

...LSELECT‘C‘,159,400,20,320UNIONALLSELECT‘D‘,250,30,15,15  行转列后:SELECTP.ProgrectName,P.Supplier,P.SupplyNumFROM(SELECTProgrectName,OverseaSupply,NativeSupply,SouthSupply,NorthSupplyFROMProgrectDetail)TUNPIVOT(SupplyNumFORSupplierIN(OverseaSupply,NativeSupply,SouthSupply,Nor... 查看详情

oracle逗号分割,列转行,行转列转载(代码片段)

https://www.cnblogs.com/gdzhong/p/4726315.html?tvd SQL代码列转行selectREGEXP_SUBSTR(a.rolecode,'[^,]+',1,l)rolecodefrom(select'a,aa,aaa'rolecodefromdual)a,(SELECTLEVELlFROMDUALCONNECTBY 查看详情

hive行转列lateralviewexplode使用方法(代码片段)

原数据表a,每列都是由逗号分隔的字符串:bb_id1,2,31,12,3我们需要的是bb_id1231123使用LATERALVIEWexplode函数可进行行转列selectbb_id2fromaLATERALVIEWexplode(split(bb_id),','))bbidasbb_id2;  查看详情

mysql窗口函数(代码片段)

MYSQL窗口函数1.行与列的转换1.1行转列1.2列转行2.窗口函数2.1什么是窗口函数2.2基本含义基本语法2.3演示表格2.4演示脚本2.5分组子句(partitionby)2.6排序子句(orderby)2.7窗口子句(rows)2.8总体流程2.9函数分类2.10组内分组TOP-N2.11查询连续登... 查看详情

mysql窗口函数(代码片段)

MYSQL窗口函数1.行与列的转换1.1行转列1.2列转行2.窗口函数2.1什么是窗口函数2.2基本含义基本语法2.3演示表格2.4演示脚本2.5分组子句(partitionby)2.6排序子句(orderby)2.7窗口子句(rows)2.8总体流程2.9函数分类2.10组内分组TOP-N2.11查询连续登... 查看详情

sqlserver的forxmlpath与变通的行转列(代码片段)

...以通过这个语法做一些变通实现一些特定的功能,比如说行转列。要会变通的话,当然首先是要知道FORXMLPATH的语法。FORXMLPATH的简单语法假设有一个hobby表(爱好),表中有两个字段,一个是hobbyID(爱好id),一个是hName(爱好名... 查看详情

hive函数之~行转列与列转行(代码片段)

4、行转列1.相关函数说明CONCAT(stringA/col,stringB/col…):返回输入字符串连接后的结果,支持任意个输入字符串;CONCAT_WS(separator,str1,str2,...):它是一个特殊形式的CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参... 查看详情

行转列,列转行,图一转图二或图二转图一(代码片段)

图一:NamCourseScorezhangsanChinese85zhangsanMaths76zhangsanEnglish80lisiChinese82lisiMaths90lisiEnglish55图二:NamChineseMathsEnglishzhangsan857680lisi829055图一转图二:SELECTNam,SUM(IF(Course=‘Chinese‘,Score,0) 查看详情

oracle行转列方法集合(代码片段)

...09;语法:select需要分组的字段,wmsys.wm_concat(distinct需要行转列合并展示的字段)from表名groupby需要分组的字段;实战:查询各年级涉及的班级,多个班级默认用“,”隔开按一行合并展示。select*fromCLASS_STATISTICS; selectGRADE,wms... 查看详情