开始使用免费开始使用

找出最受欢迎的艺人

我们之前还没能把曲目销量与艺人关联起来。现在就来解决它!您将动手使用公共表表达式,从两张表中取数,并找出总收听分钟数最多的艺人。开始之前,请先在输出窗口中查看一下 albumartist 两张表。

本练习是课程的一部分

Snowflake 中的数据操作

查看课程

练习说明

  • 定义一个名为 artist_info 的 CTE,在 artist_id 字段上将 artistalbum 表进行 JOIN
  • 创建第二个名为 track_sales 的 CTE,从 track 表中获取每条曲目的 album_idname 和以秒为单位的时长。
  • 计算每位艺人的总收听分钟数。
  • 按合适的 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;
编辑并运行代码