Module 03 · Data Engineering Lifecycle数据工程生命周期
Querying and Analyzing Data数据库查询分析技术:基础与进阶应用
查询语言的其中一项作用是帮助我们访问数据库中的数据,以便更好地理解数据。本视频将介绍一些用于分析数据库数据的基本查询技术,包括:
- 计数和聚合数据集
- 识别极值
- 数据切片
- 数据排序
- 模式过滤
- 数据分组
💡 技术通用性
视频中引用的特定函数和运算符映射到 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来计算按邮政编码分组后的客户总花费。