Znajdowanie najpopularniejszych artystów
Do tej pory nie udało nam się powiązać sprzedaży utworów z konkretnymi artystami. Czas to zmienić! Wykorzystasz wspólne wyrażenia tabelaryczne (CTE), aby połączyć dane z dwóch tabel i znaleźć artystę z największą łączną liczbą odsłuchanych minut. Zanim zaczniesz, rzuć okiem na tabele album i artist w oknie wyników.
To ćwiczenie jest częścią kursu
Manipulacja danymi w Snowflake
Instrukcje do ćwiczenia
- Zdefiniuj CTE
artist_info, które łączy tabeleartistialbumza pomocąJOINpo poluartist_id. - Utwórz drugi CTE o nazwie
track_sales, który pobiera kolumnyalbum_id,nameoraz liczbę sekund na utwór z tabelitrack. - Oblicz łączną liczbę odsłuchanych minut dla każdego artysty.
- Pogrupuj wyniki według kolumny
artist_namez odpowiedniego CTE.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
-- 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;