Hitta de mest populära artisterna
Något vi inte kunnat göra hittills är att koppla spårförsäljning till en artist. Nu ändrar vi på det! Du ska använda common table expressions för att hämta data från två tabeller och hitta den artist som har flest lyssnade minuter. Innan du börjar, ta en titt på tabellerna album och artist i utdatafönstret.
Den här övningen är en del av kursen
Datamanipulering i Snowflake
Övningsinstruktioner
- Definiera en CTE kallad
artist_infosomJOIN:ar tabellernaartistochalbumpå fältetartist_id. - Skapa en andra CTE kallad
track_salessom hämtaralbum_id,nameoch antal sekunder per spår från tabellentrack. - Beräkna det totala antalet lyssnade minuter för varje artist.
- Gruppera resultaten på
artist_namefrån lämplig CTE.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
-- 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;