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

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

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

相关文章

斯坦福报告解读4:图解有趣的推理基准(中)

《人工智能指数报告》由斯坦福大学、AI指数指导委员会及业内众多大佬Raymond Perrault、Erik Brynjolfsson 、James Manyika等人员和组织合著,该报告已被公认为最权威、最具信誉人工智能数据与洞察来源之一。 2024年版《人工智能指数报告》是迄今为止最为详尽的一份…

linux下常用的终端命令

文章目录 1. MV移动文件、重命名文件1.1 移动文件:mv [选项] 源文件或目录 目标文件或目录1.2 文件重命名 2. 查找:文件,内容,统计文件2.1 find查找文件2.2 Linux查找文件内容 3. 查看当前用户4. linux修改文件所属用户和组5. 复制…

Token验证流程、代码示例、优缺点和安全策略,一文告诉你。

Token和Session都是用于身份验证和授权的机制,而且Token渐渐成为主流,有不少小伙伴对token的认识不全,这里给大家分享下。 一、什么是Token Token是一种用于身份验证和授权的令牌,通常用于在客户端和服务器之间进行安全的通信。…

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

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

gradio image 类型

3种类型,默认是 numpy.array numpy.array PIL.Image str file path. 互相转换 # 从路径到 numpy.ndarray import cv2 image_mask cv2.imread(imagePath) print(type(image_mask))# 从路径到 PIL.IMAGE from PIL import Image image_maskImage.open(imagePath) pri…

【Chrono Engine学习总结】6-创建自定义场景-6.1-3D场景获取

由于Chrono的官方教程在一些细节方面解释的并不清楚,自己做了一些尝试,做学习总结。 Chrono可以导入自定义的三维模型,所以想自己搭建一个3D仿真环境。过程中遇到了一些问题,记录与整理。 1、3D环境的创建方法 Chrono的Irrlich…

Llama 3-V: 比GPT4-V小100倍的SOTA

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调重新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模…

ECP5701 做为PD受电端取电sink芯片,可广泛应用在带锂电的终端设备上,例如电动工具,照明灯具,音箱设备,摄影设备,筋膜枪小家电等

随着科技的发展,USB-C接口逐渐成为手机、平板电脑、小型家电等新型电子设备的主流接口,相较于过去繁杂的传统接口,USB-C不仅简化了消费者的使用体验,也降低了制造商的生产成本。特别是随着PD协议的普及,Type-C接口因其…

设计以容错:应对失败的12种关键设计思想

"Design for Failure" 这一说法在产品设计、软件开发和系统架构中并不常见,因为它通常与追求成功和可靠性的目标相悖。然而,如果我们从另一个角度来理解它,即“设计以应对失败”或“设计以容错”,那么以下是12种常见的设…

mysql数据导入navicat中,报错提示1067

MySQL导入问题: 报错1067 - Invalid default value for 字段名 由于数据库版本升级,老数据库的数据文件导出以后,在新版本的数据库上执行会报错 这种问题多是由于默认值不兼容引起的,我们可以通过修改sql_mode来解决这个问题 由…

day17

第一题 本题可以采用快速排序的思想,适应随机数指定和三指针划分数组为三个区域的思想: 其中指针的移动细节如上题故事,如下所示: 当a区域的商都大于k时,我们要查找的k位置元素就在左区域,我们进一步在左区…

100个 Unity小游戏系列五 -Unity 抽奖游戏专题三老虎机游戏

一、演示效果 二、知识点讲解 2.1 布局 public void CreateItems(SlotsData[] slotsData){isInited false;slotsPrizeList new List<SlotsData>();for (int i 0; i < slotsData.Length; i){var item slotsData[i];slotsPrizeList.Add(item);}float bottomY -it…

学习sam的过程

一、抓包 我平时都是用花瓶去抓包的&#xff0c;配置也很简单。就是下载软件&#xff0c;然后一步步安装。下载地址&#xff1a;Download a Free Trial of Charles • Charles Web Debugging Proxy 。然后配置手机代理 对于那些走http协议的app是可以的&#xff0c;https的还是…

SAP锁机制(SAP Locks)经验小结

1. 数据一致性与锁 为什么要有锁机制&#xff1f;其背后的核心逻辑在于“保证数据的一致性”。 当数据被应用程序修改时&#xff0c;我们必须要保证修改后的数据具有一致性。在SAP系统中&#xff0c;将一致的数据状态从一个状态变动到另一个一致状态的时间跨度被称为LUW&…

应对意外断电:气膜建筑的安全防护与智能管理—轻空间

气膜建筑以其独特的结构和高效的建设方式&#xff0c;广泛应用于各类场馆、仓储设施和临时展馆。然而&#xff0c;当遇到意外断电导致气膜内部无法送风时&#xff0c;如何避免气膜倒塌&#xff0c;确保建筑安全呢&#xff1f; 断电应急响应 气膜建筑配备了先进的智能控制系统&a…

记录一次Redisson使用synchronized和分布式锁不生效的原因

最近在开发的过程中&#xff0c;遇到了一个并发场景&#xff0c;用户进行方案复制的时候&#xff0c;当快速点击两次操作的时候&#xff0c;出现了复制方案重名的情况&#xff0c;实际上是复制方案的方案名称&#xff0c;是由后端根据数据库已有的方案名称和当前要复制的方案名…

git新电脑下载配置记录

1、官网下载 2、安装 3、配置 &#xff08;1&#xff09;先生成密钥 ssh-keygen -t rsa -C “XXXqq.com” &#xff08;2&#xff09;生成两个文件&#xff0c;复制.pub,在GitHub的setting里面设置ssh&#xff0c; &#xff08;3&#xff09;验证远程是否配置成功 ssh -T g…

Python轻量级的插件框架库之pluginbase使用详解

概要 在软件开发中,插件系统是一个常见的需求。插件系统允许开发者动态加载和卸载功能模块,从而提高应用程序的灵活性和可扩展性。Python的pluginbase库是一个轻量级的插件框架,旨在简化插件系统的构建过程。pluginbase库提供了一套简单易用的API,使开发者能够快速集成插件…

【408真题】2009-23

“接”是针对题目进行必要的分析&#xff0c;比较简略&#xff1b; “化”是对题目中所涉及到的知识点进行详细解释&#xff1b; “发”是对此题型的解题套路总结&#xff0c;并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材&#xff08;2025版&…