当前位置:   article > 正文

【第35天】SQL进阶-SQL高级技巧-透视表(SQL 小虚竹)

【第35天】SQL进阶-SQL高级技巧-透视表(SQL 小虚竹)

回城传送–》《100天精通MYSQL从入门到就业》

零、前言

今天是学习 SQL 打卡的第 35 天。

​ 我的学习策略很简单,题海策略+ 费曼学习法。如果能把这些题都认认真真自己实现一遍,那意味着 SQL 已经筑基成功了。后面的进阶学习,可以继续跟着我,一起走向架构师之路。

今天的学习内容是:SQL高级技巧-透视表

一、练习题目

题目链接难度
透视表★★★☆☆

二、SQL思路

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

初始化数据

创建销售记录表sales_records

CREATE TABLE sales_records (  
    id INT AUTO_INCREMENT PRIMARY KEY,  
    product_name VARCHAR(100) NOT NULL,  
    sale_date DATE NOT NULL,  
    amount DECIMAL(10, 2) NOT NULL  
);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这个表包含销售记录的ID、产品名称、销售日期和销售金额。

接下来,我们插入一些测试数据:

INSERT INTO sales_records (product_name, sale_date, amount) VALUES  
('产品A', '2023-01-01', 100.00),  
('产品B', '2023-01-01', 150.00),  
('产品A', '2023-01-02', 200.00),  
('产品C', '2023-01-02', 120.00),  
('产品B', '2023-01-03', 180.00),  
('产品A', '2023-01-03', 250.00);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

这些数据表示了三种产品在不同日期的销售金额。

什么是透视表

MySQL的透视表实际上是一种通过SQL查询模拟出来的数据展示形式。它允许我们将原始数据按照不同的维度进行聚合和重排,从而以更清晰、直观的方式展示数据。

实战体验

例子:创建一个透视表,展示每种产品在每天的销售金额。

SELECT
	PRODUCT_NAME,
	SUM(CASE WHEN SALE_DATE = '2023-01-01' THEN AMOUNT ELSE 0 END) AS '2023-01-01',
	SUM(CASE WHEN SALE_DATE = '2023-01-02' THEN AMOUNT ELSE 0 END) AS '2023-01-02',
	SUM(CASE WHEN SALE_DATE = '2023-01-03' THEN AMOUNT ELSE 0 END) AS '2023-01-03'
FROM
	SALES_RECORDS
GROUP BY
	PRODUCT_NAME;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述
这个查询使用了CASE语句和SUM()聚合函数来按照产品名称和日期对销售金额进行汇总。GROUP BY子句则确保结果按照产品名称进行分组。

执行上述查询后,你将得到一个透视表形式的结果,其中每一行代表一个产品,每一列代表一个特定日期的销售金额。

三、总结

虽然MySQL没有内置的透视表功能,但我们可以通过编写复杂的SQL查询来模拟实现透视表的效果。这种方法在处理简单透视需求时非常有效,但对于更复杂的场景,可能需要更高级的查询技术或考虑使用其他数据处理工具。

在实际应用中,透视表常用于数据分析和报告生成,它能够帮助我们更好地理解和展示数据的内在关系。通过结合MySQL的查询功能和透视表的思想,我们可以更加灵活地处理和呈现数据。

所以,嗯,这题的答案选。。评论区大声告诉虚竹哥。

四、参考

MySQL进阶技能树–》SQL高级技巧–》透视表

我是虚竹哥,我们明天见~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/503945
推荐阅读
相关标签
  

闽ICP备14008679号