เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การหาผลรวมสะสมด้วย Window Function SQL

Window function ทำงานคล้ายกับฟังก์ชันการรวมค่า (aggregate function) แต่ต่างกันตรงที่ให้ผลลัพธ์ทุกแถวในชุดข้อมูล แทนที่จะได้แถวเดียวต่อกลุ่ม

สามารถใช้การรวมค่าร่วมกับ window function ได้ การหาผลรวมสะสมด้วย window function นั้นทำได้ง่ายกว่าการใช้ join และยังใช้เวลาในการรันคิวรีได้เร็วกว่าอีกด้วย

มีตารางชื่อ schedule ให้พร้อมใช้งาน โดยมีคอลัมน์ train_id, station, time และ diff_min คอลัมน์ diff_min แสดงเวลาที่ใช้เดินทางระหว่างสถานีปัจจุบันกับสถานีถัดไปบนสาย

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Introduction to Spark SQL in Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • รันคิวรีที่เพิ่มคอลัมน์ใหม่ชื่อ running_total ลงในชุดข้อมูลนี้ โดยคอลัมน์ running_total ใช้ SUM() เพื่อหาผลรวมสะสมของเวลาระหว่างสถานีจากคอลัมน์ diff_min
  • รันคิวรีและแสดงผลลัพธ์

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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()
แก้ไขและรันโค้ด