Альбомы, которые стимулируют продажи
Сегодня ваш руководитель поделился с вами важной информацией: скоро стартует праздничная акция со скидками на альбомы «Greatest Hits». Чтобы выбрать для неё наиболее подходящие альбомы, нужно выяснить, какие из них приносят больше всего продаж. Именно здесь пригодятся все навыки, которые вы освоили!
Это упражнение является частью курса
Манипуляция данными в Snowflake
Инструкции к упражнению
- Определите CTE с именем
album_map. - Создайте инструкцию
CASE, которая возвращаетTRUE, если в названии альбома есть словоgreatest, иFALSEв противном случае; задайте псевдонимis_greatest_hits. - Обновите CTE
trimmed_invoicelines, выполнивLEFT JOINтаблицinvoiceиtracksк таблицеinvoicelinesпо полямinvoice_idиtrack_idсоответственно. - Используйте подзапрос, чтобы возвращать только альбомы «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;