Xử lý dữ liệu trong Snowflake
Jake Roach
Field Data Engineer
$$
Xử lý và biến đổi dữ liệu theo điều kiện.
Tận dụng kết quả của một truy vấn trong truy vấn khác.
Định nghĩa tập kết quả tạm để dùng trong truy vấn chính.
SELECT
todays_date,
temperature,
status,
CASE
WHEN temperature > 70 AND status NOT IN ('Rain', 'Wind') THEN 'Beach'
WHEN temperature BETWEEN 45 AND 70 AND status = 'Sun' THEN 'Sports'
WHEN temperature <= 32 OR status = 'Snow' THEN 'Skiing'
ELSE 'Stay In'
END AS activity
FROM weather;
Có thể kết hợp logic điều kiện với các hàm tổng hợp.

SELECT
month_num,
AVG(differential) AS avg_differential
MIN(differential) AS most_differential
FROM (
SELECT
month_num,
windchill - temperature AS differential
FROM weather
WHERE
season = 'Winter' AND
temperature < 32
)
GROUP BY month_num;
WITH at_risk AS (
SELECT
student_id
course_name,
teacher_name,
grade
FROM student_courses
WHERE grade < 70 AND is_required
)
SELECT
students.student_name,
at_risk.*
FROM at_risk
JOIN students ON at_risk.student_id = students.id;
Common Table Expressions (CTE) tạm lưu kết quả của một truy vấn để dùng cho truy vấn khác
$$
Xử lý dữ liệu trong Snowflake