Gom tất cả lại!
Đến lúc rồi! Hãy đưa tất cả những gì bạn đã học vào thử thách. CEO của công ty đang cần một bảng điều khiển cho phép ông ấy xem sâu các chỉ số tổng quan của từng điểm sạc, bao gồm dữ liệu như năng lượng đã tiêu thụ và chi phí sạc. Trước khi xây dựng bảng điều khiển này, bạn cần tạo một bộ dữ liệu làm nổi bật các thông tin đó.
Bài tập này là một phần của khóa học
Window Functions trong Snowflake
Hướng dẫn bài tập
- Xếp hạng mỗi phiên sạc tại một
charging_station_locationdựa trênenergy_consumed, từ lớn đến nhỏ. - Tạo một tổng tích lũy (running total) của
charging_costtheocharging_station_location. - Xây dựng một khung cửa sổ (window frame) dùng hai phiên liền trước và hai phiên liền sau để tìm trung bình trượt (moving average) của
energy_consumedtheocharging_station_location.
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.
SELECT
charging_station_location,
TO_DATE(charging_start_time),
charging_cost,
energy_consumed,
-- Provide a ranking for each charging session based on energy consumed, from greatest to least
___() OVER(
PARTITION BY charging_station_location
ORDER BY ___
) AS rank_energy_consumed,
-- Generate a "running total" of charging costs by charging station location
SUM(___) OVER(
___ ___ ___
ORDER BY charging_start_time
ROWS BETWEEN ___ ___ AND ___ ___
) AS running_total_charging_cost,
-- Build a window frame using the two preceding and two following sessions to find a moving average of energy consumed
___() OVER(
PARTITION BY ___
ORDER BY charging_start_time
ROWS BETWEEN ___ ___ AND ___ ___
) AS moving_average_energy_consumed
FROM ELECTRIC_VEHICLES.charging
WHERE energy_consumed IS NOT NULL
ORDER BY charging_station_location, charging_start_time;