시작하기무료로 시작하기

매출을 이끄는 앨범

오늘 이사님이 자리로 와서 곧 진행될 "Greatest Hits" 앨범 연말 프로모션에 대한 내부 정보를 알려주셨어요. 다만 최적의 앨범을 할인 대상에 포함하려면, 어떤 "Greatest Hits" 앨범이 매출을 가장 많이 이끄는지 알고 싶어 하세요. 이를 위해 지금까지 배운 모든 기술을 종합해 보겠습니다!

이 연습은 강의의 일부입니다

Snowflake에서 데이터 조작

강의 보기

연습 안내

  • album_map이라는 CTE를 정의하세요.
  • 앨범 제목에 greatest가 포함되어 있으면 TRUE, 그렇지 않으면 FALSE를 반환하는 CASE 문을 만들고, 별칭은 is_greatest_hits로 지정하세요.
  • trimmed_invoicelines CTE를 업데이트하고, invoice_idtrack_id를 기준으로 각각 invoicelinesinvoice 테이블과 tracks 테이블을 LEFT JOIN하세요.
  • 하위 쿼리를 사용하여 "Greatest Hits" 앨범만 반환하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

-- Define an album_map CTE to combine albums and artists
___ (
    SELECT
        album.album_id, album.title AS album_name, artist.name AS artist_name,
  		-- Determine if an album is a "Greatest Hits" album
        ___ 
            ___ album_name ILIKE '%greatest%' ___ TRUE
            ELSE FALSE
        ___ AS ___
    FROM store.album
    JOIN store.artist ON album.artist_id = artist.artist_id
), trimmed_invoicelines (
    SELECT
        invoiceline.invoice_id, track.album_id, invoice.total
    FROM store.invoiceline
    LEFT JOIN store.invoice ON invoiceline.invoice_id = invoice.invoice_id
    LEFT JOIN store.track ON invoiceline.track_id = track.track_id
)

SELECT
    album_map.album_name,
    album_map.artist_name,
    SUM(ti.total) AS total_sales_driven
FROM trimmed_invoicelines AS ti
JOIN album_map ON ti.album_id = album_map.album_id
-- Use a subquery to only "Greatest Hits" records
___ ti.___ ___ (SELECT album_id FROM album_map WHERE is_greatest_hits)
GROUP BY album_map.album_name, album_map.artist_name, is_greatest_hits
ORDER BY total_sales_driven DESC;
코드 편집 및 실행