MySQL实战行转列(或称为PIVOT)实战sales的表记录了不同产品在不同月份的销售情况,进行输出

有一个sales的表,它记录了不同产品在不同月份的销售情况:

productJanuaryFebruaryMarch
Product AJanuary10
Product AFebruary20
Product BJanuary5
Product BFebruary15
Product CJanuary8
Product CFebruary12

客户需求展示为如下的样子:

productJanuaryFebruaryMarch
Product A10200
Product B5150
Product C8120

#行转列概念

行转列操作指的是将表格中一行数据转换为多列数据的操作。

SQL解决:

--创建表
CREATE TABLE sales (
    id INT AUTO_INCREMENT PRIMARY KEY,
    product VARCHAR(255),
    month VARCHAR(255),
    quantity INT
);
--插入数据
INSERT INTO sales (product, month, quantity) VALUES
('Product A', 'January', 10),
('Product A', 'February', 20),
('Product B', 'January', 5),
('Product B', 'February', 15),
('Product C', 'January', 8),
('Product C', 'February', 12);

–查询语句

SELECT 
    product,
    MAX(CASE WHEN month = 'January' THEN quantity ELSE 0 END) AS January,
    MAX(CASE WHEN month = 'February' THEN quantity ELSE 0 END) AS February,
    MAX(CASE WHEN month = 'March' THEN quantity ELSE 0 END) AS March
FROM 
    sales
GROUP BY 
    product;

在这里插入图片描述

查询语句的解释如下:

MAX(CASE WHEN … THEN … ELSE … END): 这是一个条件聚合函数,它检查month字段的值,并在条件为真时返回相应的quantity值,否则返回0。MAX函数在这里用于确保即使有多个月份相同的记录,也只返回一个值。
AS January, AS February, AS March: 这些是列的别名,将结果列重命名为对应的月份。
FROM sales: 指定查询的表名为sales。
GROUP BY product: 按照product字段对结果进行分组,这样每个产品的销售情况都会在一行中显示。
执行上述查询后,你会得到如下结果:

productJanuaryFebruaryMarch
Product A10200
Product B5150
Product C8120

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

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

相关文章

智能客服:论小红书商家杀出重围的正确姿势!

小红书「起飞」密码 洞悉需求,主动应变 面对众多的互联网平台,选择一个合适的平台宣传自家的品牌,也是一门学问,从“遇事不决,小红书”,这一 slogan 就能精准地捕捉了用户搜索行为的新趋势。 在过去的十…

【机器学习】基于tensorflow实现你的第一个DNN网络

博客导读: 《AI—工程篇》 AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效 AI智能体研发之路-工程篇(二):Dify智能体开发平台一键部署 AI智能体研发之路-工程篇(三&am…

Facebook:社交世界的接口

在当今数字时代,社交媒体已经成为了人们生活中不可或缺的一部分,而Facebook作为其中的巨头之一,扮演着至关重要的角色。本文将带您深入探索Facebook这张社交世界的画卷,全面了解这个令人着迷的平台。 起源与历程 Facebook的故事始…

揭开神秘的“位移主题”面纱 no.16

Kafka中神秘的内部主题(Internal Topic)__consumer_offsets。 consumer_offsets在Kafka源码中有个更为正式的名字,叫*位移主题*,即Offsets Topic。为了方便今天的讨论,我将统一使用位移主题来指代consumer_offsets。需…

机器视觉分析在加油站安全中的应用:使用手机检测、打电话行为识别

在加油站等高危场所,禁止使用手机是为了防止潜在的火灾和爆炸风险。手机在使用过程中可能产生电火花,而在加油站这种易燃易爆环境中,任何电火花都可能引发严重的安全事故。因此,加油站禁止使用手机是保障安全生产的重要措施。基于…

如何让Google快速收录?

要让Google快速收录你的网站,可以考虑使用GSI服务,这是一种专门设计来加速网站被Google搜索引擎收录的服务,下面详细解释GSI服务的基本原理和具体好处: GSI服务通过一种名为GPC爬虫池的系统实现,这个系统是基于对Goog…

SQL注入攻击是什么?如何预防?

一、SQL注入攻击是什么? SQL注入攻击是一种利用Web应用程序中的安全漏洞,将恶意的SQL代码插入到数据库查询中的攻击方式。攻击者通过在Web应用程序的输入字段中插入恶意的SQL代码,然后在后台的数据库服务器上解析执行这些代码,从而…

对比方案:5款知识中台工具的优缺点详解

知识中台工具为企业和组织高效地组织、存储和分享知识,还能提升团队协作的效率。在选择搭建知识中台的工具时,了解工具的优缺点,有助于企业做出最佳决策。本文LookLook同学将对五款搭建知识中台的工具进行优缺点的简单介绍,帮助企…

单细胞分析(Signac): PBMC scATAC-seq 基因组区域可视化

引言 在本教学指南中,我们将探讨由10x Genomics公司提供的人类外周血单核细胞(PBMCs)的单细胞ATAC-seq数据集。 加载包 首先加载 Signac、Seurat 和我们将用于分析人类数据的其他一些包。 if (!requireNamespace("EnsDb.Hsapiens.v75&qu…

虹科Pico汽车示波器 | 免拆诊断案例 | 2017款吉利帝豪GL车发动机偶尔无法起动

故障现象  一辆2017款吉利帝豪GL车,搭载JLC-4G18发动机和手动变速器,累计行驶里程约为39.3万km。车主反映,该车发动机偶尔无法起动。故障发生频率比较频繁,冷机状态下故障比较容易出现。 故障诊断  接车后试车,故…

1Panel开源面板全平台下载总量突破500,000次!

截至2024年5月22日,FIT2CLOUD飞致云旗下开源项目——1Panel开源Linux服务器运维管理面板全平台下载总量突破500,000次!

Java培训后找不到工作,现在去培训嵌入式可行吗?

最近java 工作还是比较好找,不知道你是对薪资要求太高,还是因为其他原因,如果你真的面试了很多都还找不到工作,那么一定要知道找不到工作的原因是啥,一定不是因为java 太卷,你说那个行业,那个职…

socks5 如何让dns不被污染

问题 发现firefox浏览器代理设置成socks5后,查看ip是成功了,但是谷歌等海外的还是无法正常访问。 原因 主要原因是socks5连接虽然是成功了,但是dns还是走国内的,国内的dns解析都被污染了导致没法正常访问 解决 把设置里的 使…

工程文档CAD转换必备!快速将 DWG 转换到 PNG ~

Aspose.CAD 是一个独立的类库,以加强Java应用程序处理和渲染CAD图纸,而不需要AutoCAD或任何其他渲染工作流程。该CAD类库允许将DWG, DWT, DWF, DWFX, IFC, PLT, DGN, OBJ, STL, IGES, CFF2文件、布局和图层高质量地转换为PDF和光栅图像格式。 Aspose AP…

springboot学生就业信息管理系统-计算机毕业设计源码95340

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对学生就业信息管理系统等问题,对…

Spire.PDF for .NET【文档操作】演示:将PDF 拆分为多个 PDF

Spire.PDF 完美支持将多页 PDF 拆分为单页。但是,更常见的情况是,您可能希望提取选定的页面范围并保存为新的 PDF 文档。在本文中,您将学习如何通过 Spire.PDF 在 C#、VB.NET 中根据页面范围拆分 PDF 文件。 Spire.PDF for .NET 是一款独立 …

Python-3.12.0文档解读-内置函数pow()详细说明+记忆策略+常用场景+巧妙用法+综合技巧

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 详细说明 功能描述 参数 返回值 使用规则 示例代码 基本使用 模运算 变动记录…

CAD石墨烯生成器 V1.0 渊鱼

插件介绍 CAD石墨烯生成器插件可用于在AutoCAD软件内参数化建立石墨烯几何模型。插件建立石墨烯的球棍模型,可控制模型的尺寸、碳原子环的尺寸、原子直径、化学键直径,并可控制模型的起伏形态。插件生成的实体模型可进行修改或绘图渲染,用于…

Java多线程(02)—— 线程等待,线程安全

一、如何终止线程 终止线程就是要让 run 方法尽快执行结束 1. 手动创建标志位 可以通过在代码中手动创建标志位的方式,来作为 run 方法的执行结束条件; public static void main(String[] args) throws InterruptedException {boolean flag true;Thr…

快速下载极客时间课程

仅供学习,切勿商用 1. 下载 下载geektime-downloader,安装到指定文件夹,注意路径尽量不要出现汉字 不想去github上下载的可以直接下载文章顶部的软件安装包。 2. 执行命令 在安装geektime-downloader目录下,点击鼠标右键&…