Tính tổng chạy bằng window function trong SQL
Window function giống như hàm tổng hợp, nhưng thay vì trả về một hàng cho mỗi nhóm, nó cho ra kết quả cho từng hàng trong dữ liệu.
Bạn có thể vừa tổng hợp vừa dùng window function. Tính tổng chạy (running sum) với window function đơn giản hơn nhiều so với khi phải dùng JOIN, và thời gian chạy truy vấn cũng có thể nhanh hơn đáng kể.
Đã cung cấp cho bạn bảng schedule với các cột train_id, station, time và diff_min. Cột diff_min cho biết thời gian trôi qua giữa ga hiện tại và ga tiếp theo trên tuyến.
Bài tập này là một phần của khóa học
Nhập môn Spark SQL bằng Python
Hướng dẫn bài tập
- Chạy truy vấn thêm một cột mới vào các bản ghi trong tập dữ liệu này tên là
running_total. Cộtrunning_totaldùngSUM()trên phần chênh lệch thời gian giữa các ga được cho bởi cộtdiff_min. - Chạy truy vấn và hiển thị kết quả.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Add col running_total that sums diff_min col in each group
query = """
SELECT train_id, station, time, diff_min,
____(____) OVER (PARTITION BY ____ ORDER BY ____) AS running_total
FROM schedule
"""
# Run the query and display the result
spark.____(query).show()