最も人気のあるアーティストを見つける
これまでできていなかったのは、トラックの売上をアーティストに結びつけることでした。ここで解決しましょう!共通テーブル式を使って2つのテーブルからデータを取り出し、最も「再生分数」が多いアーティストを見つけます。始める前に、出力ウィンドウで album と artist テーブルを確認してください。
この演習はコースの一部です
Snowflake でのデータ操作
演習の手順
artist_idをキーにartistテーブルとalbumテーブルをJOINするartist_infoCTE を定義します。- 2つ目の CTE として
track_salesを作成し、trackテーブルからalbum_id、name、各トラックの秒数を取得します。 - 各アーティストの合計の再生分数を計算します。
- 適切な CTE の
artist_nameで結果をグループ化します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
-- 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;