Coursera 笔记

Module 03 · Data Engineering Lifecycle数据工程生命周期

Querying and Analyzing Data数据库查询分析技术:基础与进阶应用

Coursera ↗

查询语言的其中一项作用是帮助我们访问数据库中的数据,以便更好地理解数据。本视频将介绍一些用于分析数据库数据的基本查询技术,包括:

  • 计数和聚合数据集
  • 识别极值
  • 数据切片
  • 数据排序
  • 模式过滤
  • 数据分组

💡 技术通用性

视频中引用的特定函数和运算符映射到 SQL(关系型数据库的查询语言)。然而,这些查询技术也适用于其他查询语言,例如 NoSQL 数据库的类 SQL 语言(如 Cassandra 的 CQL 和 Neo4J 的 Cypher),以及可用于查询数据的 API。


一、计数与聚合 (Counting and Aggregating)

开始分析数据集时,首先要做的就是清点数据的数量,聚合函数则有助于从不同角度概览数据集。

函数/技术 SQL 函数 用途/目的 示例应用
计数记录 COUNT() 统计数据集中的行数或记录数。 统计已购买二手车的客户记录总数(示例数据集中有 15 条记录)。
隔离唯一值 DISTINCT() 隔离唯一的(不重复的)数据值。 隔离数据集中唯一的汽车经销商数量。
计数唯一值 COUNT() + DISTINCT() 统计唯一数据值的总数。 统计独特的汽车经销商数量(示例数据集中为 8 个)。
求和 SUM() 计算表中数字列的总和。 计算客户在二手车上的总花费。
平均值 AVG() 计算数字列的平均值。 计算二手车的平均成本(示例中略低于 $6000)。
标准差 STDDEV() 衡量数据集中数字的分散程度。 查看二手车成本的分散程度(示例中标准差超过 $11000)。

📌 标准差洞察:标准差值越大,分散程度越广。观察标准差可以为数据集带来不同的视角。

二、识别极值 (Identifying Extreme Values)

用于识别数据列中的极端值:

  • 最大值:使用 MAX() 函数,获取列中的最大值。
    • 示例:数据集中客户的最高花费($37)。
  • 最小值:使用 MIN() 函数,获取列中的最小值。
    • 示例:数据集中客户的最低花费($1000)。

三、数据切片与排序 (Slicing and Sorting)

1. 数据切片 (Slicing Data)

  • 功能:根据特定条件或一组条件来查找客户数据。
  • 实现:使用 SLICE() 函数(或其他查询中的条件运算符,如 WHERE)。
  • 示例:检索居住在特定区域的客户数据;或购买汽车花费在 $1000 到 $2000 之间的客户数据。
  • 组合条件:可以使用运算符指定多个值(例如,花费在 $1000 到 $2000 之间并且居住在特定区域的客户)。

2. 数据排序 (Sorting Data)

  • 功能:将数据按有意义的顺序排列,使其更易于理解和分析。
  • 实现:使用 ORDER BY() 函数。
  • 排序方式:允许按升序或降序对数据列进行排序。
  • 示例:按购买日期对数据集进行排序,以查看节日期间汽车销售量是否增加。

四、模式过滤与数据分组 (Pattern Filtering and Grouping)

1. 过滤模式 (Filtering Patterns)

  • 功能:允许执行数据值的模糊或部分匹配。
  • LIKE 运算符:与 EQUAL TO 运算符(返回数据值完全匹配特定值的记录)不同,LIKE 运算符可以指定匹配部分数据值的模式。
  • 示例:假设要过滤某个区域内的所有购买数据,该区域的邮政编码前三位数字不变,后两位数字变化。
    • 操作:可以使用 LIKE() 运算符指定前三位数字的模式,并对第四和第五位数字使用通配符。

2. 数据分组 (Grouping Data)

  • 功能:用于对数据进行分组,通常与聚合函数结合使用。
  • 实现:使用 GROUP BY 语句。
  • 示例:要找出按邮政编码分组的客户总花费,可以使用 SUM() 和 GROUP BY 来计算按邮政编码分组后的客户总花费。