My SQL 列转行操作

news/2024/9/21 5:30:22/文章来源:https://www.cnblogs.com/ykagile/p/18399903

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

 原表数据库查询代码:

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.hqwc.cn/news/792962.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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项目,包括安装所需环境、命令使用方法、指定模板、强制克隆、启动开发服务器等步骤,并提供了完整的项目初…

KUnit:设备模拟重定向

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

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 指…

kingbase——创建truncate函数

写上一篇比较round函数与truncate函数时,顺手试了一下KINGBASE数据库,应该是没有TRUNCATE这个函数,要使用估计得手动创建。创建函数如下 create or replace function sys.truncate(numeric,int4) returns numeric as declarevalue numeric;result numeric; beginvalue := l…

LeetCode Hot100刷题记录-21. 合并两个有序链表

题目描述:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。需要知道的pre-knowledge: list1和list2起初可直接代表两个链表的头节点,无需用另外的变量比如 current 来表示头节点。 思路:准备一个虚拟节点,指向合并完成新链…

Playwright 源码 BrowserType

playwright-java 的 Browser、BrowserContext、Page 挺好理解的,唯独这厮,就有一丢丢 ……playwright-java 的 Browser、BrowserContext、Page 挺好理解的,唯独这厮,就有一丢丢 ……package com.microsoft.playwright;/*** BrowserType provides methods to launch a speci…

【优技教育】Oracle 19c OCP 082题库(第14题)- 2024年修正版

【优技教育】Oracle 19c OCP 082题库(Q 14题)- 2024年修正版 考试科目:1Z0-082 考试题量:90 通过分数:60% 考试时间:150min 本文为(CUUG 原创)整理并解析,转发请注明出处,禁止抄袭及未经注明出处的转载。 原文地址:http://www.cuug.com.cn/ocp/082kaoshitiku/3818373495…

安装了跑神经网络的环境,所遇到的问题及解惑1

cuda:12.2 cudnn:8.9.7 tensorflow库:2.17.0(python310_test) {9:37}/home/code/python ➭ python mnist_test.py 2024-09-06 09:39:29.473128: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to registe…

记一次阿里云搭建K8S在恢复镜像快照之后etcd一个节点无法启动问题

环境查看 系统环境# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) # uname -a Linux CentOS7K8SMaster01005101 3.10.0-1160.114.2.el7.x86_64 #1 SMP Wed Mar 20 15:54:52 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux软件环境 # kubectl version Client Vers…