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 uit de linkerentiteit combineert met de overeenkomende rijen uit de rechtertabel, gebaseerd ON een sleutelSELECT
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-aggregatiefunctie die het aantal items in een groep teruggeeft.GROUP BY: SQL-clausule om gegevens met dezelfde waarden te aggregeren.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-aggregatiefunctie die de hoogste waarde voor een attribuut in een reeks 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-opdracht om kolommen uit een entiteit op te halenJOIN ON: SQL-clausule die rijen uit entiteiten combineert op basis van een gerelateerd attribuutLEFT JOIN ON: SQL-clausule die alle rijen uit de linkerentiteit combineert met de overeenkomende rijen uit de rechtertabel, gebaseerd ON een sleutel. Is er geen match, dan krijg je toch de rijen van links met lege waarden voor de rechterattributenCOUNT: SQL-aggregatiefunctie die het aantal items in een groep teruggeeftMAX: SQL-aggregatiefunctie die de hoogste waarde voor een attribuut in een reeks vindtGROUP BY: SQL-clausule om gegevens met dezelfde waarden te aggregerenSELECT column_name,
COUNT(another_column) AS alias_name,
MAX(other_column) AS alias_name
FROM table_name table_alias
-- Entiteiten samenvoegen op basis van 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
-- Gegevens aggregeren per specifieke kolommen
GROUP BY column_name;
Introductie tot datamodellering in Snowflake