Data Modeling ใน 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 ที่รวมทุกแถวจาก entity ด้านซ้ายกับแถวที่ตรงกันจากตารางด้านขวา โดยอิงจาก ON keySELECT
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: ฟังก์ชัน aggregate ใน 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: ฟังก์ชัน aggregate ใน 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 สำหรับดึงคอลัมน์จาก entityJOIN ON: คำสั่ง SQL สำหรับรวมแถวจาก entity โดยอิงจากแอตทริบิวต์ที่เกี่ยวข้องLEFT JOIN ON: คำสั่ง SQL ที่รวมทุกแถวจาก entity ด้านซ้ายกับแถวที่ตรงกันจากตารางด้านขวา โดยอิงจาก ON key หากไม่มีข้อมูลที่ตรงกัน ผลลัพธ์จะยังคงแสดงแถวของ entity ด้านซ้ายโดยมีค่าว่างสำหรับแอตทริบิวต์ด้านขวาCOUNT: ฟังก์ชัน aggregate ใน SQL ที่คืนค่าจำนวนรายการในกลุ่มMAX: ฟังก์ชัน aggregate ใน SQL ที่หาค่าสูงสุดในชุดค่าของแอตทริบิวต์GROUP BY: คำสั่ง SQL สำหรับรวมกลุ่มข้อมูลที่มีค่าเหมือนกัน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;
Data Modeling ใน Snowflake เบื้องต้น