My SQL 列转行操作
原表结构如下,我们可以发现,“日运输量”和“车次”是在同一张表中相互独立的两个字段,即独立的两列数据,下面,我将系统中的测试数据以及代码全部放出来,以解释列转行的操作方法

原表数据库查询代码:
1 SELECT
2 yzrq AS 运作日期,
3 DATE_FORMAT( yzrq, '%Y-%m' ) AS 年月,
4 rysl AS 日运输量,
5 jldw AS 计量单位,
6 cc AS 车次
7 FROM
8 uf_ysmxb
原表查询结果:

目标:车次需要按月进行统计,相当于列转行
最终需要字段:年月、月度发货量、发货量类型
第一步:我们需要单独将车次数据提取出来
SELECT
yzrq,
DATE_FORMAT( yzrq, '%Y-%m' ) AS 年月,
cc AS 日运输量,
'车次' AS 发货量类型
FROM
uf_ysmxb

第二步:使用union all与其他的数据合并(到这里就已经实现了列转行的操作),注意,合并的两张表必须保证字段类型和名字一致
SELECT
yzrq AS 运作日期,
DATE_FORMAT( yzrq, '%Y-%m' ) AS 年月,
rysl AS 日运输量,
CASE
jldw
WHEN 34 THEN
'重量' ELSE '体积'
END AS 发货量类型
FROM
uf_ysmxb UNION ALL
SELECT
yzrq,
DATE_FORMAT( yzrq, '%Y-%m' ) AS 年月,
cc AS 日运输量,
'车次' AS 发货量类型
FROM
uf_ysmxb

第三步:将数据按要求进行汇总统计
SELECT
年月,
SUM(日运输量) AS 月度发货量,发货量类型
FROM
(
SELECT
yzrq AS 运作日期,
DATE_FORMAT( yzrq, '%Y-%m' ) AS 年月,
rysl AS 日运输量,
CASE
jldw
WHEN 34 THEN
'重量' ELSE '体积'
END AS 发货量类型
FROM
uf_ysmxb UNION ALL
SELECT
yzrq,
DATE_FORMAT( yzrq, '%Y-%m' ) AS 年月,
cc AS 日运输量,
'车次' AS 发货量类型
FROM
uf_ysmxb
) AS T
GROUP BY
年月,发货量类型

My SQL 列转行操作的更多相关文章
- SQL 列转行 分组去重并合并多条记录
继上篇<SQL 列转行 合并多条记录>后,有网友反馈新的需求还是不太会用. 现举例说明 一,网友需要如下的效果: 其实,这个需求依然可以我上篇的方法进行解答,但为了实现分组,需要disti ...
- SQL列转行,行转列实现
在工作中,大家可能会遇到一些SQL列转行.行转列的问题,恰好,我也遇到了,就在此记录一下.此处所用的是SQLServer2008R2. 行转列,列转行,都要预先知道要要处理多少数据,在此我就以三种方案 ...
- SQL 列转行的实现
--列转行,逗号拼接指定列的值Oracle中写法:select wmsys.wm_concat(Field1) from TableASQL Server中写法:SELECT STUFF(( SELE ...
- sql列转行查询
test表: 执行列转行sql: select student, sum(case Course when '语文' then Score else null end) 语文, sum(case Co ...
- Sql 列转行字符串
select OrderID,ProdDetailID from A 表A : OrderID,ProdDetailID 1 6 1 7 1 ...
- SQL Server 行转列 列转行操作
1.多行转成一行(并以','分开) 表数据如下图: 查询结果如下图: SQL查询脚本: SELECT addPer, house_code = (STUFF((SELECT ',' + house_c ...
- SQL 列转行,即多行合并成一条
需求:按照分组,将多条记录内容合并成一条,效果如下: 数据库示例: CREATE TABLE [t2]([NID] [bigint] NULL,[district] [nvarchar](255) N ...
- sql 列转行
原表:转过的表: 代码: ) set @sql = 'select AssetRecordId ' select @sql = @sql + ' , max(case ExtendName when ...
- Sql"列转行"三种方法对比
SQL code------ 合并列值 --***************************************************************************** ...
- 利用XML语法 SQL 列转行
--行转列 固定xml语法 declare @xml xml ; set @xml=cast('<v>2</v><v>4</v><v>3&l ...
随机推荐
- 在线flex布局----自己写的一个flex布局的小玩意,需要的私聊加关注0.0
- 循环Map的几种方法
package cn.jdbc.test;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import ...
- csv导入导出组件jcsv
jcsv 介绍 jcsv一个简单的.轻量级的csv导入.导出库,相对于opencsv与javacsv,jcsv侧重于导入导出,包括导入校验.导出模板等. 源代码地址:https://gitee.com ...
- Linux 常见编辑器
命令行编辑器 Vim Linux 上最出名的编辑器当属 Vim 了.Vim 由 Vi 发展而来,Vim 的名字意指 Vi IMproved,表示 Vi 的升级版.Vim 对于新手来说使用比较复杂,不过 ...
- ElasticSearch-hard插件及IK分词器安装
ElasticSearch-hard插件及IK分词器安装 编辑 通过上一篇学习,我们学会了ElasticSearch的安装及访问到了如下页面: 编辑 ElasticSearch-head插件安 ...
- IDEA 忽然无法打开某个特定文件
背景:IDEA中双击打开一个.py文件时,弹出一个文件类型的弹窗(没注意是什么,估计是不小心按到了什么快捷键),当时随便选的Text,结果不知道为什么,这个文件无法在IDEA中打开(之前都正常) 由于 ...
- 肉夹馍(Rougamo)4.0.1 异步方法变量调试修复与IoC系列扩展
肉夹馍(https://github.com/inversionhourglass/Rougamo),一款编译时AOP组件,无需在应用启动时进行初始化,也无需繁琐的配置:支持所有种类方法(同步和异步. ...
- win10找不到无线网络报错:Windows无法自动将IP协议堆栈绑定到网络适配器
win10找不到无线网络报错:Windows无法自动将IP协议堆栈绑定到网络适配器 问题描述: 今天启动电脑,忽然发现连不上WIFI了,但可以拨号连接有线网.大致情况如下: 上图是修复后的结果,在未修 ...
- redis 基准性能测试与变慢优化
redis 参考目录: 生产级Redis 高并发分布式锁实战1:高并发分布式锁如何实现 https://www.cnblogs.com/yizhiamumu/p/16556153.html 生产级Re ...
- CSS 实现滑动整个元素
其实没什么难点,主要就是两个CSS属性 scroll-snap-type 这个是作用在包裹容器身上的. scroll-snap-align 这个是作用在被包裹容器身上的. 效果如下图所示: 代码如下: ...