De populairste artiesten vinden
Iets wat we nog niet hebben kunnen doen, is trackverkoop koppelen aan een artiest. Laten we dat veranderen! Je gaat aan de slag met common table expressions om gegevens uit twee tabellen te combineren en de artiest met de meeste geluisterde minuten te vinden. Neem voordat je begint even een kijkje naar de tabellen album en artist in het resultaatvenster.
Deze oefening maakt deel uit van de cursus
Gegevens manipuleren in Snowflake
Oefeninstructies
- Definieer een
artist_info-CTE die de tabellenartistenalbumJOINt op het veldartist_id. - Maak een tweede CTE genaamd
track_salesdie dealbum_id,nameen het aantal seconden per track uit de tabeltrackophaalt. - Bereken het totaal aantal geluisterde minuten per artiest.
- Groepeer de resultaten op
artist_nameuit de juiste CTE.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
-- 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;