Introductie tot datamodellering in 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-clausule die alle rijen van de linkertabel combineert met overeenkomende rijen van de rechtertabel op basis van een sleutel (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: aggregatiefunctie die het aantal items in een groep geeft.GROUP BY: SQL-clausule om data met dezelfde waarden te groeperen.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: aggregatiefunctie die de hoogste waarde van een attribuut vindt.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-commando om kolommen op te halen uit een entiteitJOIN ON: SQL-clausule die rijen combineert op basis van een gerelateerd attribuutLEFT JOIN ON: combineert alle rijen van de linkertabel met matches uit de rechtertabel op basis van een sleutel. Zonder match blijven linkerrijen staan met lege waarden rechtsCOUNT: aggregatiefunctie die het aantal items in een groep geeftMAX: aggregatiefunctie die de hoogste waarde van een attribuut vindtGROUP BY: SQL-clausule om data met dezelfde waarden te groeperenSELECT column_name,
COUNT(another_column) AS alias_name,
MAX(other_column) AS alias_name
FROM table_name table_alias
-- Entiteiten mergen op hun sleutels
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
-- Data aggregeren per kolom(men)
GROUP BY column_name;
Introductie tot datamodellering in Snowflake