Introduktion till datamodellering i 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-sats som kombinerar alla rader från den vänstra entiteten med matchande rader från den högra tabellen, baserat ON en nyckelSELECT
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-aggregatfunktion som returnerar antalet element i en grupp.GROUP BY: SQL-sats för att aggregera data med samma värden.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-aggregatfunktion som returnerar det högsta värdet i en uppsättning värden för ett attribut.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-kommando för att hämta kolumner från en entitetJOIN ON: SQL-sats som kombinerar rader från entiteter baserat ON ett relaterat attributLEFT JOIN ON: SQL-sats som kombinerar alla rader från den vänstra entiteten med matchande rader från den högra tabellen, baserat ON en nyckel. Om ingen matchning finns visas ändå den vänstra entitetens rader, med tomma värden för den högra entitetens attributCOUNT: SQL-aggregatfunktion som returnerar antalet element i en gruppMAX: SQL-aggregatfunktion som returnerar det högsta värdet i en uppsättning värden för ett attributGROUP BY: SQL-sats för att aggregera data med samma värdenSELECT 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;
Introduktion till datamodellering i Snowflake