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

Поиск самых популярных исполнителей

До сих пор нам не удавалось связать продажи треков с конкретным исполнителем. Давайте исправим это! В этом упражнении вы будете использовать обобщённые табличные выражения, чтобы объединить данные из двух таблиц и найти исполнителя с наибольшим количеством прослушанных минут. Прежде чем приступить, обратите внимание на таблицы album и artist в окне вывода.

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

Манипуляция данными в Snowflake

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

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

  • Определите CTE artist_info, которое объединяет (JOIN) таблицы artist и album по полю artist_id.
  • Создайте второе CTE с именем track_sales, которое извлекает столбцы album_id, name и количество секунд для каждого трека из таблицы track.
  • Вычислите суммарное количество прослушанных минут для каждого исполнителя.
  • Сгруппируйте результаты по полю artist_name из соответствующего CTE.

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

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

-- Create an artist_info CTE, JOIN the artist and album tables
___ ___ ___ (
    SELECT
        album.album_id,
        artist.name AS artist_name
    FROM store.album
    JOIN store.artist ON album.artist_id = artist.artist_id

-- Define a track_sales CTE to assign an album_id, name,
-- and number of seconds for each track
), ___ ___ (
    SELECT
        track.___,
        track.___,
        track.milliseconds / 1000 AS num_seconds
    FROM store.invoiceline
    JOIN store.track ON invoiceline.track_id = track.track_id
)

SELECT
    ai.artist_name,
    -- Calculate total minutes listed
    SUM(___) / 60 AS minutes_listened
FROM track_sales AS ts
JOIN artist_info AS ai ON ts.album_id = ai.album_id
-- Group the results by the non-aggregated column
GROUP BY ___.___
ORDER BY minutes_listened DESC;
Редактировать и запускать код