My SQL 列转行操作

news/2024/9/23 5:31:00

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

 原表数据库查询代码:

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

原表查询结果:

目标:车次需要按月进行统计,相当于列转行

最终需要字段:年月、月度发货量、发货量类型

 

第一步:我们需要单独将车次数据提取出来

SELECTyzrq,DATE_FORMAT( yzrq, '%Y-%m' ) AS 年月,cc AS 日运输量,'车次' AS 发货量类型 FROMuf_ysmxb 

第二步:使用union all与其他的数据合并(到这里就已经实现了列转行的操作),注意,合并的两张表必须保证字段类型和名字一致

SELECTyzrq AS 运作日期,DATE_FORMAT( yzrq, '%Y-%m' ) AS 年月,rysl AS 日运输量,CASEjldw WHEN 34 THEN'重量' ELSE '体积' END AS 发货量类型 FROMuf_ysmxb UNION ALLSELECTyzrq,DATE_FORMAT( yzrq, '%Y-%m' ) AS 年月,cc AS 日运输量,'车次' AS 发货量类型 FROMuf_ysmxb 

第三步:将数据按要求进行汇总统计

SELECT年月,SUM(日运输量) AS 月度发货量,发货量类型 
FROM(SELECTyzrq AS 运作日期,DATE_FORMAT( yzrq, '%Y-%m' ) AS 年月,rysl AS 日运输量,CASEjldw WHEN 34 THEN'重量' ELSE '体积' END AS 发货量类型 FROMuf_ysmxb UNION ALLSELECTyzrq,DATE_FORMAT( yzrq, '%Y-%m' ) AS 年月,cc AS 日运输量,'车次' AS 发货量类型 FROMuf_ysmxb ) AS T 
GROUP BY年月,发货量类型

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/57211.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

VS中 调试逐语句和逐过程的区别

逐过程(F10)在遇到函数时,会把函数从整体上看做一条语句,不会进入函数内部;逐语句(F11)在遇到函数时,认为函数由多条语句构成,会进入函数内部。

使用 nuxi init 创建全新 Nuxt 项目

title: 使用 nuxi init 创建全新 Nuxt 项目 date: 2024/9/6 updated: 2024/9/6 author: cmdragon excerpt: 摘要:本文介绍了如何使用nuxi init命令创建全新的Nuxt.js项目,包括安装所需环境、命令使用方法、指定模板、强制克隆、启动开发服务器等步骤,并提供了完整的项目初…

nfs服务器

文件传输工具ftp:vsftpd工具 Samba:Linux和Windows之间进行文件共享 NFS:专用于linux和Linux之间的专门的文件共享服务(NFS服务),network filesystem网络文件系统。NFS服务可以把远程linux机器上面的文件目录数据,通过挂载的形式,映射在用户本地机器(Linux用户在自己本…

KUnit:设备模拟重定向

设备模拟 有些驱动文件是需要device的,所以KUnit提供了一些设备模拟的方法,并且还提供了总线来管理设备的生命周期。 下面先以clock device模拟举例(drivers/clk/clk_test.c)首先用一个struct来模拟这个clk设备。其中clk_hw是clk的描述,rate相当于模拟设备的波特率寄存器s…

Docker 安装mysql

1、从docker hub 上拉取镜像到本地# docker pull mysql:5.62.如果是不加版本直接拉取的话,默认的是最新版本 # docker pull mysql:latest默认拉取最新的版本 3.启动:# docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD="设置你的mysql的密码"-d mysql…

IDA 动态调试初步学习

题目 https://files.buuoj.cn/files/985826f5dda0d8665ed997a49321dd88/attachment.zip 1C这个值太小导致加密失败,所以考虑动态调试修改1C为更大的值选择调试F2下一些断点找到1C在内存中的位置F9开始调试先F7单步,观察右下角的Stack view,内存中出现1C先选中,然后按F2,然后修改…

JavaScript 中 structuredClone 和 JSON.parse(JSON.stringify()) 克隆对象的区别

JavaScript 中 structuredClone 和 JSON.parse(JSON.stringify()) 克隆对象的区别JavaScript 中 structuredClone 和 JSON.parse(JSON.stringify()) 克隆对象的异同点 一、什么是 structuredClone? 1. structuredClone 的发展 structuredClone 是在 ECMAScript 2021(ES12)标…

【c】printf()中%占位符的选取和使用: %d, %s等

格式占位符速通 格式占位符 %格式占位符 % 是在 C/C++ 语言中格式输入函数,如 scanf、printf 等函数中使用。 其意义就是起到格式占位的意思,表示在该位置有输入或者输出。规定符%d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指…