Aan de slagBegin gratis

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

Bekijk cursus

Oefeninstructies

  • Definieer een artist_info-CTE die de tabellen artist en album JOINt op het veld artist_id.
  • Maak een tweede CTE genaamd track_sales die de album_id, name en het aantal seconden per track uit de tabel track ophaalt.
  • Bereken het totaal aantal geluisterde minuten per artiest.
  • Groepeer de resultaten op artist_name uit 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;
Code bewerken en uitvoeren