MySQL行转列、列转行

要达到的效果:
在这里插入图片描述

MySQL不支持动态行转列

原始数据:
以行的方式存储

CREATE TABLE product_sales (id INT AUTO_INCREMENT PRIMARY KEY,product_name VARCHAR(50) NOT NULL,category VARCHAR(50) NOT NULL,sales_volume INT NOT NULL,sales_date DATE NOT NULL
);INSERT INTO product_sales (product_name, category, sales_volume, sales_date) VALUES
('iPhone', '电子产品', 50, '2025-01-01'),
('MacBook', '电子产品', 30, '2025-01-01'),
('iPad', '电子产品', 40, '2025-01-01'),
('衬衫', '服装', 60, '2025-01-01'),
('牛仔裤', '服装', 55, '2025-01-01'),
('连衣裙', '服装', 70, '2025-01-01'),
('苹果', '食品', 80, '2025-01-01'),
('牛奶', '食品', 75, '2025-01-01'),
('面包', '食品', 65, '2025-01-01'),
('iPhone', '电子产品', 45, '2025-01-02'),
('MacBook', '电子产品', 25, '2025-01-02'),
('iPad', '电子产品', 35, '2025-01-02'),
('衬衫', '服装', 55, '2025-01-02'),
('牛仔裤', '服装', 50, '2025-01-02'),
('连衣裙', '服装', 65, '2025-01-02'),
('苹果', '食品', 95, '2025-01-05'),
('牛奶', '食品', 90, '2025-01-05'),
('面包', '食品', 80, '2025-01-05');

行转列
列的形成,使用关键字CASE WHEN

SELECTsales_date AS '销售日期',CASE WHEN product_name = 'iPhone' THEN sales_volume ELSE 0 END AS 'iPhone',CASE WHEN product_name = 'MacBook' THEN sales_volume ELSE 0 END AS 'MacBook',CASE WHEN product_name = 'iPad' THEN sales_volume ELSE 0 END AS 'iPad',CASE WHEN product_name = '衬衫' THEN sales_volume ELSE 0 END AS '衬衫',CASE WHEN product_name = '牛仔裤' THEN sales_volume ELSE 0 END AS '牛仔裤',CASE WHEN product_name = '连衣裙' THEN sales_volume ELSE 0 END AS '连衣裙',CASE WHEN product_name = '苹果' THEN sales_volume ELSE 0 END AS '苹果',CASE WHEN product_name = '牛奶' THEN sales_volume ELSE 0 END AS '牛奶',CASE WHEN product_name = '面包' THEN sales_volume ELSE 0 END AS '面包',sales_volume AS '日总销量'
FROMproduct_sales;

结果:
形成了这样的大表
在这里插入图片描述
去除冗余数据:

SELECTsales_date AS '销售日期',SUM(CASE WHEN product_name = 'iPhone' THEN sales_volume ELSE 0 END) AS 'iPhone',SUM(CASE WHEN product_name = 'MacBook' THEN sales_volume ELSE 0 END) AS 'MacBook',SUM(CASE WHEN product_name = 'iPad' THEN sales_volume ELSE 0 END) AS 'iPad',SUM(CASE WHEN product_name = '衬衫' THEN sales_volume ELSE 0 END) AS '衬衫',SUM(CASE WHEN product_name = '牛仔裤' THEN sales_volume ELSE 0 END) AS '牛仔裤',SUM(CASE WHEN product_name = '连衣裙' THEN sales_volume ELSE 0 END) AS '连衣裙',SUM(CASE WHEN product_name = '苹果' THEN sales_volume ELSE 0 END) AS '苹果',SUM(CASE WHEN product_name = '牛奶' THEN sales_volume ELSE 0 END) AS '牛奶',SUM(CASE WHEN product_name = '面包' THEN sales_volume ELSE 0 END) AS '面包',SUM(sales_volume) AS '日总销量'
FROMproduct_sales
GROUP BYsales_date
ORDER BYsales_date;

结果:
在这里插入图片描述

列转行
数据:

CREATE TABLE sales_data (sale_date DATE PRIMARY KEY,p_001 INT,p_002 INT,p_003 INT,p_004 INT,p_005 INT,p_006 INT,p_007 INT,p_008 INT,p_009 INT,p_010 INT
);
INSERT INTO sales_data (sale_date, p_001, p_002, p_003, p_004, p_005, p_006, p_007, p_008, p_009, p_010) VALUES
('2025-01-01', 50, 30, 40, 60, 55, 70, 80, 75, 65, 525),
('2025-01-02', 45, 25, 35, 55, 50, 65, 75, 70, 60, 480),
('2025-01-03', 55, 35, 45, 65, 60, 75, 85, 80, 70, 570),
('2025-01-04', 60, 40, 50, 70, 65, 80, 90, 85, 75, 615),
('2025-01-05', 65, 45, 55, 75, 70, 85, 95, 90, 80, 660);

操作:
使用UNION ALL关键字

SELECTsale_date,'p_001' AS product_id,p_001 AS sales_amount
FROM sales_data
UNION ALL
SELECTsale_date,'p_002' AS product_id,p_002 AS sales_amount
FROM sales_data
UNION ALL
SELECTsale_date,'p_003' AS product_id,p_003 AS sales_amount
FROM sales_data.......

结果:
在这里插入图片描述

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

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

相关文章

云创智称YunCharge充电桩互联互通平台使用说明讲解

云创智称YunCharge充电桩互联互通平台使用说明讲解 一、云创智称YunCharge互联互通平台简介 云创智称YunCharge(YunCharge)互联互通平台,旨在整合全国充电桩资源,实现多运营商、多平台、多用户的统一接入和管理,打造开…

HTML+JS实现类型excel的纯静态页面表格,同时单元格内容可编辑

<!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>在线表格</title><style>table {border…

Gartner金融AI应用机会雷达-学习心得

一、引言 在当今数字化时代,人工智能(AI)技术正以前所未有的速度改变着各个行业,金融领域也不例外。财务团队面临着如何从AI投资中获取最大价值的挑战。许多首席财务官(CFO)和财务领导者期望在未来几年增加对AI的投入并从中获得更多收益。据调查,90%的CFO和财务领导者预…

像素着色器没有绘制的原因

背景 directX调用了 draw&#xff0c;顶点着色器运行&#xff0c;但是像素着色器没有运行。 原因 光栅化阶段被剔除 说明&#xff1a;如果几何图元&#xff08;如三角形&#xff09;在光栅化阶段被剔除&#xff0c;像素着色器就不会被调用。常见剔除原因&#xff1a; 背面…

jenkins对接、jenkins-rest

https://www.bilibili.com/video/BV1RqNRz5Eo6 Jenkins是一款常见的构建管理工具&#xff0c;配置好后操作也很简单&#xff0c;只需去控制台找到对应的项目&#xff0c;再输入分支名即可 如果每次只发个位数的项目到也还好&#xff0c;一个个进去点嘛。但如果一次要发几十个项…

北斗导航深度接入小程序打车:高精度定位如何解决定位漂移难题?

你有没有遇到过这样的尴尬&#xff1a; 在写字楼、地下车库或密集楼群中叫车&#xff0c;系统显示的位置和你实际所在位置差了几十米甚至上百米&#xff1b;司机因为找不到你而绕圈&#xff0c;耽误时间还多花平台费用&#xff1b;有时明明站在A出口&#xff0c;司机却跑到B口…

MySQL 主要集群解决方案

MySQL 主要有以下几种集群解决方案&#xff0c;每种方案针对不同的应用场景和需求设计&#xff1a; 1. MySQL Replication&#xff08;主从复制&#xff09; 类型&#xff1a;异步/半同步复制架构&#xff1a;单主多从特点&#xff1a; 读写分离&#xff0c;主库写&#xff0c…

基于vue3+express的非遗宣传网站

​ 一个课程大作业&#xff0c;需要源码可联系&#xff0c;可以在http://8.138.189.55:3001/浏览效果 前端技术 Vue.js 3&#xff1a;我选择了Vue 3作为核心前端框架&#xff0c;并采用了其最新的Composition API开发模式&#xff0c;这使得代码组织更加灵活&#xff0c;逻辑…

【7】图像变换(上)

本节偏难,不用过于深究 考纲 文章目录 可考题【简答题】补充第三版内容:图像金字塔2023甄题【压轴题】习题7.1【第三版】1 基图像2 与傅里叶相关的变换2.1 离散哈特利变换(DHT)可考题【简答题】2.2 离散余弦变换(DCT)2021甄题【简答题】2.3 离散正弦变换(DST)可考题【简…

WinUI3入门9:自制SplitPanel

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

【面板数据】上市公司投资者保护指数(2010-2023年)

上市公司投资者保护指数是基于上市公司年报中公开披露的多项内容&#xff0c;从信息透明度、公司治理结构、关联交易披露、控股股东行为规范等多个维度&#xff0c;评估企业是否在制度上和实际操作中有效保障投资者&#xff0c;特别是中小投资者的合法权益。本分享数据基于我国…

如何解决USB远距离传输难题?一文了解POE USB延长器及其行业应用

在日常办公、教学、医疗和工业系统中&#xff0c;USB接口设备扮演着越来越关键的角色。无论是视频采集设备、键盘鼠标&#xff0c;还是打印机、条码枪&#xff0c;USB早已成为主流连接标准。然而&#xff0c;USB原生传输距离的限制&#xff08;通常在5米以内&#xff09;常常成…

PostgreSQL(TODO)

(TODO) 功能MySQLPostgreSQLJSON 支持支持&#xff0c;但功能相对弱非常强大&#xff0c;支持 JSONB、索引、函数等并发控制行级锁&#xff08;InnoDB&#xff09;&#xff0c;不支持 MVCC多版本并发控制&#xff08;MVCC&#xff09;&#xff0c;性能更好存储过程/触发器支持&…

LINUX 623 FTP回顾

FTP 权限 /etc/vsftpd/vsftpd.conf anonymous_enableNO local_enableNO 服务器 .20 [rootweb vsftpd]# grep -v ^# vsftpd.conf anonymous_enableNO local_enableYES local_root/data/kefu2 chroot_local_userYES allow_writeable_chrootYES write_enableYES local_umask02…

leetcode:77. 组合

学习要点 学习回溯思想&#xff0c;学习回溯技巧&#xff1b;大家应当先看一下下面这几道题 leetcode&#xff1a;46. 全排列-CSDN博客leetcode&#xff1a;78. 子集-CSDN博客leetcode&#xff1a;90. 子集 II-CSDN博客 题目链接 77. 组合 - 力扣&#xff08;LeetCode&#x…

自定义主题,echarts系列嵌套

自定义主题&#xff0c;echarts系列嵌套&#xff0c;完善map地图系列与lines系列抛物线 自定义主题开发设计&#xff08;如传感器数据可视化&#xff09; 1.使用typetreemap自定义 TreeMap 主题&#xff08;矩形树图系列&#xff09; 2.在矩形树图中画typelines动态连线和typee…

速度与精度的结合:Faster R-CNN模型的性能剖析

目标检测作为计算机视觉领域的核心问题之一&#xff0c;其重要性随着深度学习技术的发展而日益凸显。本文深入探讨了基于深度学习的Faster R-CNN模型&#xff0c;这是一种革命性的目标检测框架&#xff0c;它通过引入区域提议网络&#xff08;Region Proposal Network, RPN&…

计算机网络--期末速通版

以下总结提纲来自于hcgg&#xff0c;伟大无需多言。socket编程没有写进去&#xff0c;Rdt的话我后来感觉可能只考概念&#xff0c;其余我感觉会考的部分都在里面了&#xff0c;如果有错误或者解释不清楚造成的疑问&#xff0c;希望大家及时指正&#xff0c;感谢。 应用层 DNS…

AI浪潮拐点:MCP与A2A协议如何重塑AI智能体协作生态

一、AI技术演进的必然拐点:从单机智能到群体协作 当AI技术从单模型推理迈向复杂系统协作,MCP(模型协作协议)与A2A(智能体间协作协议)的诞生标志着产业变革的关键转折点。这一演进并非偶然,而是技术发展与社会需求双重驱动的必然结果。 从技术脉络看,AI正经历从"…

Python pyecharts基础(一)

pyecharts 安装 pip安装 pip(3) install pyecharts源码安装 $ git clone https://github.com/pyecharts/pyecharts.git $ cd pyecharts $ pip install -r requirements.txt $ python setup.py install # 或者执行 python install.py查看版本 import pyecharts print(pyecha…