매출을 이끄는 앨범
오늘 이사님이 자리로 와서 곧 진행될 "Greatest Hits" 앨범 연말 프로모션에 대한 내부 정보를 알려주셨어요. 다만 최적의 앨범을 할인 대상에 포함하려면, 어떤 "Greatest Hits" 앨범이 매출을 가장 많이 이끄는지 알고 싶어 하세요. 이를 위해 지금까지 배운 모든 기술을 종합해 보겠습니다!
이 연습은 강의의 일부입니다
Snowflake에서 데이터 조작
연습 안내
album_map이라는 CTE를 정의하세요.- 앨범 제목에
greatest가 포함되어 있으면TRUE, 그렇지 않으면FALSE를 반환하는CASE문을 만들고, 별칭은is_greatest_hits로 지정하세요. trimmed_invoicelinesCTE를 업데이트하고,invoice_id와track_id를 기준으로 각각invoicelines에invoice테이블과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;