ÎncepețiÎncepe gratuit

Totul laolaltă!

Acesta este momentul adevărului! E timpul să pui în practică tot ce ai învățat. CEO-ul companiei tale ți-a cerut un tablou de bord care să îi ofere o privire de ansamblu asupra fiecărei locații de încărcare – incluzând date despre energia consumată și costurile de încărcare. Înainte de a construi acest tablou de bord, trebuie să creezi un set de date care să evidențieze aceste informații.

Acest exercițiu face parte din cursul

Funcții de fereastră în Snowflake

Vezi cursul

Instrucțiuni pentru exercițiu

  • Acordă un rang fiecărei sesiuni de încărcare pentru o anumită charging_station_location, pe baza valorii energy_consumed, de la cea mai mare la cea mai mică.
  • Generează un total cumulativ al charging_cost pentru fiecare charging_station_location.
  • Construiește un cadru de fereastră folosind cele două sesiuni anterioare și cele două sesiuni următoare pentru a calcula o medie mobilă a energy_consumed pentru fiecare charging_station_location.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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;
Editează și rulează codul