找出最受欢迎的艺人
我们之前还没能把曲目销量与艺人关联起来。现在就来解决它!您将动手使用公共表表达式,从两张表中取数,并找出总收听分钟数最多的艺人。开始之前,请先在输出窗口中查看一下 album 和 artist 两张表。
本练习是课程的一部分
Snowflake 中的数据操作
练习说明
- 定义一个名为
artist_info的 CTE,在artist_id字段上将artist与album表进行JOIN。 - 创建第二个名为
track_sales的 CTE,从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;