НачатьНачать бесплатно

Всё вместе!

Вот и финал! Пришло время применить всё, что вы изучили. Генеральный директор вашей компании обратился к вам с просьбой создать дашборд, который даст ему подробное представление о ключевых показателях каждой точки зарядки: потреблённой энергии, стоимости зарядки и других метриках. Прежде чем приступить к построению дашборда, необходимо подготовить набор данных, который предоставит всю эту информацию.

Это упражнение является частью курса

Оконные функции в Snowflake

Посмотреть курс

Инструкции к упражнению

  • Присвойте ранг каждой зарядной сессии в рамках заданного charging_station_location на основе energy_consumed — от наибольшего значения к наименьшему.
  • Сформируйте накопительный итог по charging_cost с разбивкой по charging_station_location.
  • Создайте оконный фрейм, включающий две предшествующие и две следующие сессии, чтобы вычислить скользящее среднее по energy_consumed с разбивкой по charging_station_location.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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;
Редактировать и запускать код