關聯模型
表格
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)