拓冰建站拓冰建站
首页 / 资讯中心 / 正文

谷歌数据分析 V 笔记(二)

进阶应用计算总利润 然而$655 并不是这些厨房用品销售的实际利润因为我们的计算中还没有包含利润率。利润率是一个百分比表示每产生一美元的销售额能带来多少美分的利润。在我们的数据集中产品编号 789 的利润率为 20%这意味着每售出一美元该产品能获得 20 美分的总利润。与计算收入类似我们可以使用SUMPRODUCT函数来节省计算利润率的时间。在这个电子表格中利润率公式与收入公式只有一个重要区别。操作步骤如下在单元格G7中开始输入。键入公式的第一部分与之前相同SUMPRODUCT(。以同样的方式包含前两个数组数量和单价。但不要立即结束公式而是添加另一个逗号,后跟第三个数组。这次选择包含利润率的单元格D3:D7。完成公式并闭合括号。SUMPRODUCT函数使我们免于将每个单独的收入金额乘以每个利润率百分比然后再将每个利润金额相加的繁琐步骤。总结 https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/ef48c72cc96bb872655a618ccc92bf2b_6.png在本节课中我们一起学习了SUMPRODUCT这个强大的复合函数。我们了解到SUMPRODUCT可以高效地执行涉及多个数组的乘法和求和运算。它通过SUMPRODUCT(array1, array2, ...)的语法结构工作。我们通过计算订单总收入和总利润的实际例子掌握了它的应用方法。使用SUMPRODUCT进行计算不仅能节省时间还能帮助你避免手动计算可能出现的错误。这绝对是一个值得记住并融入你分析工具箱的技巧。032数据透视表入门 https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/20f0c842c5c9d14aa7ef414405b1dc59_0.png在本节课中我们将学习如何使用数据透视表Pivot Table来组织和计算数据从而快速发现数据中的洞察和趋势。数据透视表是电子表格中一个强大的工具尤其适用于汇总和分析大量数据。数据透视表简介上一节我们介绍了函数和公式它们是完成计算的有用工具。本节中我们来看看另一个可以实现类似功能的工具——数据透视表。数据透视表允许你以多种方式查看数据以发现洞察和趋势。我们之前讨论过数据透视表如何帮助清理和组织数据包括排序和分组。此外数据透视表也能辅助计算例如快速计算总和与平均值。实战演练分析电影收入数据现在让我们通过一个电影数据集的例子看看数据透视表如何与计算协同工作。在这个场景中你的经理要求你通过收入计算来寻找一些趋势以帮助构思新的电影创意。这个电子表格包含了几年前的电影数据。虽然数据本身可能已过时但我们分析数据的步骤在当下依然完全适用。第一步计算每年的总收入首先我们需要找出每年的总收入。使用数据透视表是组织这类信息的好方法。以下是创建数据透视表以显示每年总收入的步骤选择数据范围数据位于单元格A1到N509。创建新工作表为数据透视表添加一个新工作表这有助于将计算集中在一处并与原始数据分开。我们将此工作表重命名为“Revenue”。构建数据透视表将“Release Date”上映日期字段拖到“行”区域。将“Box Office Revenue”票房收入字段拖到“值”区域。按年份分组右键点击“Release Date”列中的任意单元格选择“创建数据透视表日期组”然后按“年”分组。完成这些步骤后数据透视表会自动使用求和函数SUM计算每年的总收入。无需手动更改设置。第二步计算每部电影的平均收入仅看总收入可能不够因为每年上映的电影数量不同。计算每部电影的平均收入可能更有用。我们可以在同一个数据透视表中添加这个计算再次将“Box Office Revenue”字段拖到“值”区域。点击这个新值字段将“值字段设置”中的汇总方式从“求和”改为“平均值”。平均值函数AVERAGE会为我们提供数据集中每年电影的平均收入。第三步深入分析数据观察结果我们发现2015年的平均收入远低于其他年份。作为一名优秀的分析师发现异常后应进一步探索原因。为了解原因我们首先需要知道数据集中每年包含多少部电影第三次将“Box Office Revenue”字段拖到“值”区域。将这个值字段的汇总方式改为“计数”。计数函数COUNT显示2015年的电影数量最多但其总收入却是第二低。这可能意味着2015年有很多电影收入不高从而拉低了平均收入。为了验证这个假设我们可以进行更深入的分析例如使用筛选器找出2015年收入低于1000万美元的电影数量。创建计算字段来确定这些电影占当年电影总数的百分比。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/20f0c842c5c9d14aa7ef414405b1dc59_2.png我们将在下一讲中继续这个探索过程。总结https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/20f0c842c5c9d14aa7ef414405b1dc59_4.png本节课中我们一起学习了数据透视表的基础应用。我们了解到数据透视表不仅能组织和汇总数据还能快速执行求和、平均值、计数等计算。通过分析电影收入数据的实例我们掌握了创建数据透视表、按年份分组数据以及使用不同汇总函数的方法。最重要的是我们认识到在分析中主动发现并探索数据异常是优秀数据分析师的关键特质。033数据透视表进阶 https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/4a6c8a9370a8e8253f196b509dcdaaca_0.png在本节课中我们将学习如何运用数据透视表的高级功能包括筛选器和计算字段来深入探索数据并验证假设。我们将继续使用电影收入数据集通过具体操作来解答业务问题。上一节我们创建了电影收入的数据透视表并初步观察了年度收入趋势。我们发现2015年的平均收入低于其他年份尽管该年上映的电影数量更多。我们假设这可能是因为2015年上映了更多收入低于1000万美元的电影。本节中我们将通过应用筛选器和创建计算字段来验证这一假设。应用筛选器聚焦数据筛选器功能允许我们只查看所需的数据值。我们将对复制的数据透视表进行操作。以下是具体步骤在复制的数据透视表中选中“票房收入”列的一个单元格。为该列添加筛选器此筛选器将应用于整个表格。打开筛选菜单选择“按条件筛选”以便找出每年收入低于1000万美元的电影数量。设置筛选条件为“小于”数值为10000000即1000万美元。为确保匹配建议使用与数据透视表中相同的数字格式如10000000。应用筛选后我们发现2015年有20部电影的收入低于1000万美元。虽然这个数字看起来比其他年份高但需注意2015年上映的电影总数也更多。使用计算字段验证数据在继续分析之前我们需要验证筛选后表格中的平均值是否正确因为它是在筛选前从原始透视表复制过来的。计算字段是数据透视表内的一个新字段它基于其他字段的值执行特定计算。在Excel中可以通过“字段设置”和“创建公式”菜单来实现。我们将创建一个名为“验证平均收入”的计算字段其公式为SUM(票房收入) / COUNT(票房收入)由于我们已对当前透视表应用了筛选此公式将仅计算收入低于1000万美元的电影的平均收入。通过此操作我们成功验证了数据的准确性。计算百分比以进行年度对比虽然我们有了具体数字但仍难以衡量这些低收入电影对年度平均收入的影响程度。为了更直观地进行年度对比我们将计算每年收入低于1000万美元的电影所占的百分比。这次我们不使用计算字段而是在新列中添加公式以便同时引用原始和复制后的两个数据透视表。操作步骤如下在单元格G10添加列标题“低收入电影占比”。在下一单元格中输入公式 (复制表中电影数量) / (原始表中电影数量)。使用单元格的填充柄将公式拖动应用到其他年份。最后将这些数字格式设置为百分比。完成计算后我们的分析显示2015年上映的电影中有16%的收入低于1000万美元而其他年份的比例均接近10%。这为2015年平均收入相对较低提供了一个可能的解释。在实际工作中根据分析目标我们很可能需要进一步深入。但目前我们已经完成了既定分析目标。总结本节课中我们一起学习了如何利用数据透视表进行高级数据计算。你掌握了应用筛选器来聚焦特定数据子集以及创建计算字段来执行自定义计算和验证数据。虽然熟练掌握需要练习但数据透视表的价值在于它不仅能计算还能有效地组织和筛选数据。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/4a6c8a9370a8e8253f196b509dcdaaca_2.pnghttps://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/4a6c8a9370a8e8253f196b509dcdaaca_3.png结合之前学习的函数、公式数据透视表是数据分析中强大的工具。随着实践和经验的积累你会感觉像使用它们很久一样熟练。请花时间熟悉它们的工作原理并继续探索相关视频和阅读材料。做得好034查询与计算 https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/994824f6a11ca39c033f603fd84ae35e_0.png在本节课中我们将学习如何在SQL中执行计算并将其与电子表格中的计算方式进行对比。我们将探讨基本的算术运算符、查询语法以及函数的使用帮助初学者理解SQL计算的核心概念。概述数据分析师在日常工作中可以通过多种方式完成任务计算也不例外。之前我们已经了解到在电子表格中可以通过多种方法完成相同的计算。同样在SQL中也能实现这些计算。本节将概述SQL计算与电子表格计算的异同并介绍SQL中的基本算术运算符和查询语法。算术运算符对比https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/994824f6a11ca39c033f603fd84ae35e_2.png在电子表格和SQL中算术运算符用于执行基本的数学运算。运算符是公式中用于命名操作或计算类型的符号。以下是电子表格公式中的四种基本算术运算符加法使用加号减法使用减号或连字符-乘法使用星号*除法使用正斜杠/在SQL中这些运算符以相同的方式计算数据。它们嵌入在从数据库提取数据的查询中就像电子表格公式一样。SQL查询语法查询的语法是其结构应包含要提取到新表中的所有数据细节及其位置。以下是一个可能的查询语法示例SELECTcolumn1,column2,column1column2AStotalFROMtable_name;https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/994824f6a11ca39c033f603fd84ae35e_4.png运行此查询将返回一个表显示要相加的两列及其值的总和。如果需要进行减法、乘法或除法运算只需使用相应的运算符替换加号即可。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/994824f6a11ca39c033f603fd84ae35e_6.png使用多个运算符如果需要在计算中使用多个算术运算符可以使用括号控制计算顺序。例如SELECTcolumnA,columnB,columnC,(columnAcolumnB)*columnCASresultFROMtable_name;https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/994824f6a11ca39c033f603fd84ae35e_8.png此查询将返回一个新列显示列A和列B的总和乘以列C的值。模运算符如果只需要除法计算的余数可以使用模运算符。在SQL中模运算符用百分号%表示。在电子表格中可以使用MOD函数完成相同的计算。函数的使用在电子表格和SQL中很多时候可以使用函数代替运算符完成计算。例如求和函数在电子表格和SQL中均可使用SUM函数完成加法运算。平均值函数电子表格中的AVERAGE函数与SQL中的AVG函数功能相同均返回一组数字的平均值。在SQL中这些函数被视为聚合函数因为它们对一个或多个值执行计算并返回单个值。稍后我们将学习如何与GROUP BY命令结合使用。总结https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/994824f6a11ca39c033f603fd84ae35e_10.png本节课我们一起学习了SQL计算的基础知识包括算术运算符、查询语法以及函数的使用。掌握如何编写计算查询是第一步接下来我们将继续深入学习SQL中的更多计算技巧。035在SQL查询中嵌入计算 https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/0b3339cd1ec7df4677a2b755790ba895_0.png在本节课中我们将学习如何在SQL查询中直接嵌入计算。这是一种非常高效的方法可以让我们在提取数据的同时完成计算从而更快地完成更多工作。上一节我们介绍了SQL的基本查询结构本节中我们来看看如何将计算嵌入到查询中。基本查询语法回顾https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/0b3339cd1ec7df4677a2b755790ba895_2.png一个包含计算的基本查询语法如下SELECTcolumn_name,calculation_detailsASnew_column_nameFROMtable_name;SELECT 用于指定要使用的列。计算细节 包含运算符例如除号/的计算表达式。AS 用于为包含计算值的新列命名。FROM 指定数据来源的表。实践嵌入计算验证数据现在让我们通过一个关于牛油果销售数据的例子将学习提升到新的水平。我们将使用以下语法嵌入更复杂的计算SELECTcolumn1,column2,(columnAcolumnBcolumnC)AScalculated_columnFROMdataset.table;我们的目标是找出每个日期、每个地点售出的牛油果袋子的总数。数据中已有一个显示总数的列但我们需要验证这个总数是否确实是小号袋、大号袋和加大号袋三列数值的加和。以下是构建查询的步骤使用SELECT命令选择所需的列date,region,small_bags,large_bags,xl_bags,total_bags。添加计算将三个袋子数量列相加即small_bags large_bags xl_bags。使用AS命令将计算结果命名为新列例如total_bags_calc以便与原始的总数列进行比较。使用FROM命令指定数据源表。运行查询后通过比较total_bags列和我们计算出的total_bags_calc列可以验证两列数值相同从而确认数据的准确性。进阶计算百分比并处理错误验证数据后我们可以利用这些值进行更深入的分析。例如计算小号袋占总袋数的百分比。这个信息可以帮助利益相关方决定如何包装牛油果或对哪种尺寸的袋子进行促销。我们构建一个新的查询SELECTdate,region,total_bags,small_bags,(small_bags/total_bags)*100ASsmall_bags_percentFROMdataset.table;计算逻辑(小号袋数量 / 总袋数) * 100。乘以100是为了将小数转换为更易理解的百分比形式。括号 确保除法运算优先进行。然而运行此查询可能会遇到错误“不能除以0”。这是因为数据集中某些行的total_bags值为0。为了解决这个问题我们需要使用WHERE子句为计算添加条件。以下是修复查询的方法SELECTdate,region,total_bags,small_bags,(small_bags/total_bags)*100ASsmall_bags_percentFROMdataset.tableWHEREtotal_bags0;WHERE total_bags 0 这个条件确保只选择total_bags不等于0的行进行计算。符号表示“不等于”。你也可以使用!来达到同样的效果即WHERE total_bags ! 0。注意这只是避免除以零错误的一种方法。SQL还提供了像SAFE_DIVIDE这样的函数也能安全地处理除法运算。运行修正后的查询我们就能成功得到小号袋百分比的结果。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/0b3339cd1ec7df4677a2b755790ba895_4.png总结本节课中我们一起学习了在SQL查询中嵌入计算的方法。我们首先回顾了基本语法然后通过验证数据总和、计算百分比两个实例进行了实践。在计算百分比时我们还遇到了“除以零”的错误并学会了使用WHERE子句来排除无效数据。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/0b3339cd1ec7df4677a2b755790ba895_6.png这里展示的计算方法只是一个开始。在SQL中你几乎可以在分析过程中完成任何所需的计算。将计算嵌入查询有助于你保持分析过程的有条理并快速获得结果。036与其他语句结合的计算 https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/c21c97445c61d2f66bf1d19557ed9c32_0.png在本节课中我们将学习如何在SQL查询中结合使用GROUP BY和ORDER BY语句与聚合函数以对数据进行分组、计算和排序。这是数据分析中整理和汇总数据的关键技能。概述作为数据分析师您会遇到各种形式和规模的计算需求。之前我们已经介绍了SQL中的一些基础计算方法。虽然基础计算很有用但有时我们需要先对数据进行分组然后再进行计算。GROUP BY和ORDER BY命令可以帮助我们实现这一点。这些命令通常与SUM或COUNT等聚合函数配对使用。本节将展示如何使用这些命令和函数来计算和汇总表中行组的数据。探索GROUP BY命令GROUP BY是一个命令它将表中具有相同值的行分组到汇总行中。GROUP BY命令在基本的SELECT FROM或SELECT FROM WHERE查询中与SELECT语句一起使用并且位于查询的末尾。让我们尝试使用GROUP BY。我们将使用一个包含自行车共享系统数据的数据库。我们的目标是找出每年人们使用这些自行车的骑行次数。该数据包含多个列但对于此任务我们只需要start_time列。由于此数据集未按日期组织且start_time列未按年份组织我们需要在代码中包含步骤来整理它。我们还需要每年骑行次数的总数因此需要在查询中包含一个计算。根据我们需要回答的问题这可能是我们分析中的第一步。以下是构建查询的步骤使用SELECT命令开始查询。在查询中添加EXTRACT命令。EXTRACT命令允许我们提取给定日期的某一部分来使用。从start_time列中提取年份。为此我们添加一个左括号后跟YEAR这会让服务器知道我们需要日期的哪一部分。然后添加FROM命令和start_time以便从该列的所有开始时间中获取年份。关闭括号然后使用AS和单词year来命名我们正在创建的列。在查询的下一行使用聚合函数COUNT后跟一个星号和括号。这将计算start_time列中的自行车骑行次数。使用星号确保数据中的所有开始时间都被计数。然后使用下划线代替空格将我们的列命名为number_of_rides。在下一行添加FROM和我们正在提取数据的数据库。在本例中是bigquery-public-data.new_york_citibike.citibike_trips。最后添加我们的GROUP BY命令。我们将使用它按年份对数据进行分组。输入GROUP BY后跟year。我们可以进一步使用ORDER BY命令来组织结果。在GROUP BY之后添加此命令可以对结果进行排序。我们将添加year以按年份对数据进行排序。需要注意的是默认情况下ORDER BY按升序对数据进行排序。现在我们可以运行查询来获取结果。年份从2013年开始排序到2016年结束。如果我们想将其更改为降序可以在查询末尾添加关键字DESC并再次运行。总结https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/c21c97445c61d2f66bf1d19557ed9c32_2.pnghttps://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/c21c97445c61d2f66bf1d19557ed9c32_3.png无论使用哪种顺序GROUP BY和ORDER BY命令都非常有助于我们完成和组织分析计算。这是在聚合数据时包含计算的一种方式也是SQL帮助您的分析顺利进行和推进的众多方法之一。关于SQL中的计算还有更多内容。接下来我们将学习更多关于数据验证的知识。037反复检查与验证 https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/a4fdf6b748049825e183500f269f04e8_0.png在本节课中我们将学习数据分析中一个至关重要的环节数据验证。我们将探讨如何通过反复检查来确保数据的质量、准确性和一致性从而为可靠的分析打下坚实基础。数据验证不仅仅是电子表格功能上一节我们介绍了数据验证这是一种电子表格功能通过下拉列表控制单元格的输入内容。使用数据验证可以保护工作表的结构化数据和公式。但数据验证功能只是更广泛的数据验证过程的一部分。这个过程涉及反复检查数据的质量确保其完整、准确、安全且一致。虽然数据验证过程是数据清洗的一种形式但你应该在整个分析过程中都使用它。如果你觉得这些概念很熟悉那很好。拥有高质量的数据至关重要。在我看来这个过程也很有趣因为它能将你的业务知识与技术技能结合起来。这有助于你理解数据、检查其清洁度并确保与业务目标保持一致。简而言之这是确保你的数据有意义所必须做的事情。请记住你的业务知识会随着时间和经验而积累。这里有一个专业建议尽可能多地提问会让这个过程变得容易得多。实践案例家具零售商数据分析假设我们正在为一家家具零售商分析数据。我们需要检查“购买价格”列中的值是否始终等于“售出数量”乘以“产品单价”。为此我们添加一个新列并使用乘法公式来重新计算购买价格 售出数量 * 产品单价比较总计后我们发现至少有一个值与原始“购买价格”列中的值不匹配。我们需要找到答案才能继续分析。通过研究和提问我们发现当顾客购买五件或以上特定商品时可享受30%的折扣。如果我们没有进行这项检查可能会完全忽略这一点。作为分析师计算是你工作的重要组成部分。因此每当进行计算时检查计算是否正确至关重要。常识性检查与业务理解有时你会进行一些常识性的数据验证检查。例如假设你正在分析一家只在工作日营业的企业的店内促销效果。你需要检查数据中是否没有周六和周日的销售数据。如果你的数据显示了周末的销售这可能不是数据本身的问题甚至可能根本不是问题。背后可能有合理的原因比如你的企业在周末举办了特别活动因此产生了周末销售。如果你的目标仅仅是分析工作日你可能仍然希望在分析中排除周末销售。但进行数据验证可以避免分析中的计算错误和其他失误。在不同分析工具中应用数据验证无论使用何种分析工具都应始终进行数据验证。在之前的视频中我们使用SQL分析了一些关于牛油果的数据。其中一个查询是检查“总袋数”是否为小、大和超大袋数的总和。通过运行以下查询我们能够确定“总袋数”列是准确的这使我们得以继续分析SELECTtotal_bags,small_bagslarge_bagsxlarge_bagsAScalculated_totalFROMavocado_dataWHEREtotal_bags!(small_bagslarge_bagsxlarge_bags);但是当我们试图计算小袋数占总袋数的百分比时遇到了一个小问题我们收到了一个关于“除以零”的错误信息。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/a4fdf6b748049825e183500f269f04e8_2.png我们通过调整查询来修复这个错误。如果我们把这个有错误的查询链接到提交给利益相关者的演示文稿中他们看到的将是“除以零”的错误而不是我们想要的数字。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/a4fdf6b748049825e183500f269f04e8_4.png通过将这类检查作为数据验证过程的一部分你可以避免分析中的错误完成业务目标让每个人都满意。相信我当你做到这一点时感觉会非常好。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/a4fdf6b748049825e183500f269f04e8_6.png总结本节课中我们一起学习了数据验证的核心概念和实际应用。我们了解到数据验证是一个持续的过程旨在确保数据的完整性、准确性、安全性和一致性。结合业务知识进行验证至关重要它能帮助你理解数据背后的逻辑发现异常。在任何分析工具中如电子表格、SQL都应实施验证包括常识性检查和计算验证。主动检查和提问可以避免严重的分析错误确保最终结果可靠满足业务目标。掌握数据验证技能是成为一名优秀数据分析师的基石。恭喜你完成了本节内容的学习038临时表 https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/35a49595c1ed627363e2afc2f33acd94_0.png在本节课中我们将要学习SQL中的“临时表”。临时表是数据分析师在处理数据时的一种便捷工具它类似于我们日常使用的便利贴用于临时存储和处理数据使用完毕后会自动清理。通过本教程你将了解临时表的概念、用途以及如何在SQL中创建和使用它们。什么是临时表上一节我们介绍了临时表的基本概念本节中我们来看看它的具体定义。临时表是一种在数据库服务器上临时创建和存在的数据库表。它通常被称为“temp tables”。临时表用于在特定时间段内存储从标准数据表中提取的数据子集。当你的SQL数据库会话结束时这些临时表会自动被删除。由于临时表不会被永久存储因此它们非常适合在短时间内完成分析任务例如进行计算时使用。临时表的用途 ️了解了临时表的基本概念后我们来看看它的具体应用场景。临时表在多种数据分析场景中都非常有用。以下是几个常见的用途简化复杂查询当你需要同时处理多个表并且有一个查询需要连接7到8个表时你可以先将行数最少的两个或三个表连接起来并将结果存储在临时表中。然后再将这个临时表与其他较大的表进行连接。整合多数据库查询结果如果你需要在多个不同的数据库上运行查询可以在每个单独的数据库中运行这些初始查询然后使用临时表来收集所有查询的结果。最终的报告查询将在临时表上运行。高效处理数据子集当一个表中包含大量记录而你需要反复使用其中的一小部分记录来完成某些计算或其他分析时临时表非常有用。与其反复过滤数据以返回子集不如将数据过滤一次并存储在临时表中然后针对创建的临时表运行查询。实战演练创建临时表 现在我们通过一个具体的例子来学习如何创建和使用临时表。假设你需要分析之前提到的共享单车系统的数据。你只需要分析骑行时间超过60分钟的数据但你需要回答关于这些数据的多个问题。使用临时表可以让你在不重复过滤数据的情况下多次查询这些数据。在SQL中创建临时表的方法取决于你使用的关系数据库管理系统。在本例中我们将使用BigQuery并应用WITH子句。WITH子句是一种可以多次查询的临时表类型它近似于临时表的功能即使它不会在数据库中永久添加一个表。以下是创建临时表的步骤使用WITH命令开始查询。为临时表命名例如trips_over_1_hr。输入AS命令和一个开括号(。在新的一行使用SELECT FROM WHERE结构编写子查询。SELECT *选择表中的所有列。FROM指定数据来源例如bigquery-public-data.new_york_citibike.citibike_trips。WHERE添加条件例如tripduration 36003600秒即60分钟。在新的一行添加闭括号)来结束子查询。代码示例WITHtrips_over_1_hrAS(SELECT*FROMbigquery-public-data.new_york_citibike.citibike_tripsWHEREtripduration3600)这样我们的临时表就设置好了。现在我们可以运行只返回骑行时间60分钟或更长的结果的查询。使用临时表进行查询 临时表创建完成后我们就可以基于它进行查询了。由于我们已经在临时表的上下文中工作因此不需要开启新的查询。我们可以在添加代码之前用描述性文字标注查询的目的。代码示例## 统计有多少次骑行超过60分钟SELECTCOUNT(*)ASctFROMtrips_over_1_hr运行此查询后结果将显示数据集中骑行时间达到或超过60分钟的总行程数。只要我们需要分析60分钟及以上的骑行数据就可以反复对此临时表运行查询。临时表的优势与总结 ✨通过前面的学习我们了解了临时表的创建和使用。现在我们来总结一下它的优势。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/35a49595c1ed627363e2afc2f33acd94_2.png使用临时表可以使你的工作更高效。命名和使用临时表可以帮助你以更流畅的方式处理大量数据避免因重复编写相同的查询代码而感到困惑。此外使用临时表还有另一个好处它可以帮助你的团队成员。临时表通常会使你的代码不那么复杂更易于阅读和理解这将是团队所欣赏的。本节课总结在本节课中我们一起学习了SQL中临时表的概念和用途。我们了解到临时表是临时存储数据子集的工具在会话结束后会自动删除。通过实战演练我们掌握了如何使用WITH子句在BigQuery中创建临时表并基于它进行高效查询。临时表不仅能简化复杂的数据操作提高个人工作效率还能使代码更清晰便于团队协作。039临时表的多种创建方式 ️https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/3c06be30908e61090f15417a3f359c13_0.png在本节课中我们将学习如何通过不同的SQL语句创建临时表。临时表是数据分析中的一项重要工具它能帮助您保持代码的条理性并提升分析效率。我们将介绍SELECT INTO和CREATE TABLE这两种创建临时表的方法并讨论它们各自的优缺点。上一节我们介绍了使用WITH子句创建临时表本节中我们来看看其他创建临时表的方式。使用 SELECT INTO 语句创建临时表SELECT INTO语句可以将数据从一个表复制到一个新表中但不会将这个新表永久添加到数据库中。当您需要基于特定条件例如使用WHERE子句的查询创建表的副本时这种方法非常有用。需要注意的是我们目前演示使用的BigQuery数据库暂不支持SELECT INTO命令。以下是该语句在其他关系型数据库管理系统RDBMS中的通用语法示例SELECT*INTOAfrica_SalesFROMGlobal_SalesWHERERegionAfrica;这段代码会从Global_Sales表中筛选出Region为Africa的数据并创建一个名为Africa_Sales的新临时表。当您希望保持数据库的整洁并且不需要与他人共享该表时使用SELECT INTO是一个很好的实践。使用 CREATE TABLE 语句创建临时表https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/3c06be30908e61090f15417a3f359c13_2.png如果许多人都需要使用同一个表那么CREATE TABLE语句可能是更好的选择。与SELECT INTO不同这个语句会将创建的表正式添加到数据库中。以下是使用CREATE TABLE语句实现同样功能的示例https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/3c06be30908e61090f15417a3f359c13_4.pngCREATETABLEAfrica_SalesASSELECT*FROMGlobal_SalesWHERERegionAfrica;在大多数RDBMS中您还可以为使用CREATE TABLE创建的表添加元数据描述这有助于任何使用该表的人更好地理解其中的数据。此外CREATE TABLE语句对于创建结构更复杂的表尤其有用。例如如果某段代码难以复现那么以这种方式创建临时表意味着您之后可以安全地访问这些数据。如何选择创建方式选择使用WITH子句、SELECT INTO还是CREATE TABLE来创建临时表通常取决于您的具体需求和偏好。以下是选择时需要考虑的几个因素共享需求如果表需要被团队多人使用考虑CREATE TABLE。数据库整洁性如果只是临时性分析不希望留下永久表考虑SELECT INTO或WITH子句。代码复杂度对于复杂查询的结果集考虑使用CREATE TABLE或WITH子句将其物化便于后续调用。平台兼容性不同的数据库系统RDBMS语法可能略有不同例如某些系统可能使用CREATE TEMP TABLE。https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/3c06be30908e61090f15417a3f359c13_6.png您可能会发现在不同的RDBMS中工作时所需的语法会有所差异。一个好消息是通过快速的网络搜索通常很容易找到特定数据库所需的准确语法。临时表的潜在考量无论以何种方式或在何处创建临时表它们本身的缺点并不多。但需要注意有时构建临时表可能会打断您的工作流程。这同样取决于您的分析目标和偏好。您可以反复运行同一段代码而不是创建临时表。但这通常会使您的查询语句可读性变差并且更容易因拼写错误而出错。总结https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/3c06be30908e61090f15417a3f359c13_8.png本节课中我们一起学习了创建临时表的两种主要方法SELECT INTO和CREATE TABLE。我们了解了SELECT INTO适用于创建私有的、临时的数据副本而CREATE TABLE则更适合创建需要共享或结构更复杂的永久性表。随着您在数据分析领域的不断探索您会发现临时表是众多可用工具中的一种并且用得越多您就越能游刃有余地驾驭数据分析的世界。040通过数据分析回答问题 https://github.com/OpenDocCN/dsai-notes-pt1-zh/raw/master/docs/ggl-dtanls-5/img/b3e6054f48cf887ddf0ba8ae0ad3f4b7_0.png在本节课中我们将学习如何将分析过程转化为清晰的结论并准备向他人展示你的发现。你已经掌握了多种数据分析方法现在是时候学习如何有效地传达你的分析结果了。课程完成与回顾 恭喜你完成了又一门课程。虽然我们还有更多知识需要学习但你随时可以回顾已经掌握的内容。接下来你将认识我的同事凯文。他迫不及待地想向你展示本课程下一部分的所有内容。从分析到展示 ️既然你已经熟悉了多种数据分析方法接下来你将准备好通过可视化和报告来分享你的分析结果。在接下来的部分我们将重点帮助你使用Tableau等工具提升数据可视化技能使你的图表看起来更专业。你还将学习到分享数据本质上是讲述数据的故事以及它如何回答最初驱动你进行分析的那些问题。最后你将学习如何做一场精彩的演示以及如何管理和回应听众提出的问题。总结与展望 非常感谢你与我一同探索数据分析的世界。你已经取得了长足的进步请为此感到自豪并在进入下一门课程时继续保持这股劲头。本节课中我们一起学习了从完成分析到准备展示成果的完整流程。核心在于将分析转化为故事并运用可视化工具进行有效沟通。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门