关系模型
表格
Table
含义
一个组织成行和命名列的关系。
使用场景
使用表格来存储实体、事件、参考数据和分析结果。
应用示例
analytics.orders(order_id, customer_id, amount, ordered_at)数据分析
了解关系结构、键、过滤、连接、分组、聚合、CTE 和窗口函数在分析 SQL 中的使用。
12 个术语
关系模型
Table
一个组织成行和命名列的关系。
使用表格来存储实体、事件、参考数据和分析结果。
analytics.orders(order_id, customer_id, amount, ordered_at)关系模型
Row and column
一行代表一条记录,而一列代表一个具有定义类型的属性。
在查询之前,确认每一行的粒度和每一列的含义。
One row = one order; amount = gross order value.关系模型
Primary key
一列或列集,唯一标识每个表行。
用于确保唯一性,并可靠地连接相关记录。
PRIMARY KEY (order_id)关系模型
Foreign key
一列或列集,引用另一个表中的键。
使用它来表示关系,并保护引用完整性。
orders.customer_id REFERENCES customers.customer_id查询
SELECT
一个 SQL 语句,用于从数据源中检索列或计算表达式。
仅列出需要的列,以使分析意图清晰。
SELECT order_id, amount FROM orders;查询
WHERE
一个子句,在分组和聚合之前过滤输入行。
用于行级别的日期、状态、区域或质量条件。
WHERE ordered_at >= DATE '2026-01-01'查询
JOIN
一个将来自多个表的行组合在一起的操作,使用匹配条件。
根据是否需要保留未匹配的行,选择内联连接或外联连接。
在连接之前,检查主键的唯一性,以避免意外地增加行数。
FROM orders o LEFT JOIN customers c ON c.customer_id = o.customer_id聚合
GROUP BY
一个子句,将共享选定值的行组合成组,以便进行聚合。
使用它根据日期、产品、区域或其他维度对数据进行汇总。
GROUP BY order_date, region聚合
Aggregate function
一个函数,用于从多个输入行生成一个摘要值。
根据指标定义,使用 COUNT、SUM、AVG、MIN 和 MAX。
SELECT region, SUM(amount) AS revenue FROM orders GROUP BY region;聚合
HAVING
一个子句,在聚合计算之后过滤组。
用于基于聚合结果而不是源行的条件。
HAVING COUNT(*) >= 100高级分析
Common table expression (CTE)
一个命名临时查询结果,使用 WITH 语句引入,用于在更大的语句中使用。
使用它来组织多步骤转换,并提高可读性。
WITH monthly_sales AS (...) SELECT * FROM monthly_sales;高级分析
Window function
一个函数,用于在相关行之间进行计算,同时保留单个结果行。
用于排名、累计总数、移动平均值以及上期比较。
SUM(amount) OVER (PARTITION BY customer_id ORDER BY ordered_at)