相关推荐recommended
【第35天】SQL进阶-SQL高级技巧-透视表(SQL 小虚竹)
作者:mmseoamin日期:2024-04-27

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

文章目录

  • 零、前言
  • 一、练习题目
  • 二、SQL思路
    • 初始化数据
    • 什么是透视表
    • 实战体验
    • 三、总结
    • 四、参考

      零、前言

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

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

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

      一、练习题目

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

      二、SQL思路

      【第35天】SQL进阶-SQL高级技巧-透视表(SQL 小虚竹),在这里插入图片描述,第1张

      【第35天】SQL进阶-SQL高级技巧-透视表(SQL 小虚竹),在这里插入图片描述,第2张

      【第35天】SQL进阶-SQL高级技巧-透视表(SQL 小虚竹),在这里插入图片描述,第3张

      初始化数据

      创建销售记录表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  
      );
      

      这个表包含销售记录的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);
      

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

      什么是透视表

      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;
      

      【第35天】SQL进阶-SQL高级技巧-透视表(SQL 小虚竹),在这里插入图片描述,第4张

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

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

      三、总结

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

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

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

      四、参考

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

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