Snowflake 資料建模入門
Nuno Rocha
Director of Engineering








SELECT
hs.student_key,
ss.student_name
FROM hub_students AS hs
JOIN sat_student AS ss ON hs.student_key = ss.student_key;
LEFT JOIN ON:SQL 子句,根據鍵在 ON 條件下,保留左側實體的所有列,並合併右表中相符的列。SELECT
hs.student_key,
ss.student_name
FROM hub_students AS hs
JOIN sat_student AS ss ON hs.student_key = ss.student_key
LEFT JOIN link_enrollment AS le ON hs.student_key = le.student_key
COUNT:SQL 聚合函式,回傳群組中的項目數量。GROUP BY:SQL 子句,將具有相同值的資料彙總。SELECT
hs.student_key,
ss.student_name,
COUNT(le.class_key) AS NumberOfEnrollments
FROM hub_students AS hs
JOIN sat_student AS ss ON hs.student_key = ss.student_key
LEFT JOIN link_enrollment AS le ON hs.student_key = le.student_key
GROUP BY hs.student_key,
ss.student_name
MAX:SQL 聚合函式,找出某屬性的一組值中的最大值。SELECT
hs.student_key,
ss.student_name,
COUNT(le.class_key) AS NumberOfEnrollments
MAX(sc.load_date) AS MostRecentEnrollmentDate
FROM hub_students hs
JOIN sat_student ss ON hs.student_key = ss.student_key
LEFT JOIN link_enrollment le ON hs.student_key = le.student_key
LEFT JOIN sat_class sc ON le.class_key = sc.class_key
GROUP BY hs.student_key,
ss.student_name;
SELECT FROM:SQL 指令,用於擷取實體中的欄位。JOIN ON:SQL 子句,依相關屬性合併實體的列。LEFT JOIN ON:SQL 子句,根據鍵在 ON 條件下,保留左側實體的所有列,並合併右表相符列;若無相符,結果仍顯示左側列,右側屬性為空值。COUNT:SQL 聚合函式,回傳群組中的項目數量。MAX:SQL 聚合函式,找出屬性的最大值。GROUP BY:SQL 子句,將具有相同值的資料彙總。SELECT column_name,
COUNT(another_column) AS alias_name,
MAX(other_column) AS alias_name
FROM table_name table_alias
-- 依鍵合併實體
JOIN other_table AS other_alias
ON table_alias.FK = other_alias.PK
LEFT JOIN another_table AS another_alias
ON table_alias.FK = other_alias.PK
-- 依特定欄位彙總資料
GROUP BY column_name;
Snowflake 資料建模入門