当前位置: 首页 > news >正文

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.lryc.cn/news/359859.html

相关文章:

  • 牛客NC164 最长上升子序列(二)【困难 贪心+二分 Java/Go/PHP/C++】
  • 电子烟开发【恒压、恒有效算法】
  • 基于Open3D的点云处理22-非阻塞可视化/动态可视化
  • C++面试题其一
  • CentOS7某天的samba服务搭建操作记录(还没成功)
  • Qt Demo:基于TCP协议的视频传输Demo
  • 内存管理【C++】
  • D3D 顶点格式学习
  • gmssl vs2010编译
  • 容器化部署gitlab、jenkins,jenkins应用示例
  • 基于STM32的轻量级Web服务器设计
  • 用r语言处理 Excel数据当中的缺失值方法
  • AWS 高防和阿里云高防深度对比
  • ctfshow web 月饼杯II
  • 「前端+鸿蒙」核心技术HTML5+CSS3(二)
  • unity接入live2d
  • 练习题-17
  • 乐高小人分类项目
  • 个人关于ChatGPT的用法及建议
  • 神经网络的工程基础(二)——随机梯度下降法|文末送书
  • 常见的几种编码方式
  • ubuntu移动硬盘重命名
  • VUE框架前置知识总结
  • 张宇1000题80%不会?别急,这个方法肯定有用!
  • 【python】爬虫记录每小时金价
  • 一行命令将已克隆的本地Git仓库推送到内网服务器
  • Linux文本处理三剑客(详解)
  • AI在线UI代码生成,不需要敲一行代码,聊聊天,上传图片,就能生成前端页面的开发神器
  • go-zero整合单机版ClickHouse并实现增删改查
  • 行政工作如何提高效率?桌面备忘录便签软件哪个好