CommencerCommencer gratuitement

Trouver les artistes les plus populaires

Jusqu’ici, nous n’avons pas pu relier les ventes de morceaux à un artiste. Changeons cela ! Vous allez utiliser des expressions de table communes pour croiser des données de deux tables et identifier l’artiste ayant le plus de minutes écoutées. Avant de commencer, jetez un œil aux tables album et artist dans la fenêtre de résultat.

Cet exercice fait partie du cours

Manipulation de données dans Snowflake

Afficher le cours

Instructions

  • Définissez une CTE artist_info qui fait un JOIN des tables artist et album sur le champ artist_id.
  • Créez une deuxième CTE appelée track_sales qui récupère album_id, name et le nombre de secondes par morceau depuis la table track.
  • Calculez le total de minutes écoutées pour chaque artiste.
  • Regroupez les résultats par artist_name à partir de la CTE appropriée.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

-- 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;
Modifier et exécuter le code