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:返回组内项目数量的聚合函数。GROUP BY:按相同值分组聚合数据的子句。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:在一组值中查找某属性最大值的聚合函数。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:从实体提取列的命令JOIN ON:基于关联属性合并实体行的子句LEFT JOIN ON:基于键在 ON 条件上,将左表所有行与右表匹配行组合。无匹配时,仍返回左表行,右侧属性为空COUNT:返回组内项目数量的聚合函数MAX:在一组值中查找某属性最大值的聚合函数GROUP BY:按相同值分组聚合数据的子句SELECT column_name,
COUNT(another_column) AS alias_name,
MAX(other_column) AS alias_name
FROM table_name table_alias
-- Merge entities based on their keys
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
-- Aggregate data by specific columns
GROUP BY column_name;
Snowflake 中的数据建模入门