Album pendorong penjualan
Direktur Anda menghampiri meja Anda hari ini dan memberi bocoran tentang promosi liburan untuk album "Greatest Hits" yang akan segera diluncurkan. Namun, untuk memastikan album yang didiskon benar-benar optimal, beliau ingin mengetahui album "Greatest Hits" mana yang paling mendorong penjualan. Untuk itu, Anda akan menguji semua keterampilan yang sudah Anda pelajari!
Latihan ini adalah bagian dari kursus
Manipulasi Data di Snowflake
Petunjuk latihan
- Definisikan sebuah CTE bernama
album_map. - Buat pernyataan
CASEyang mengembalikanTRUEjikagreatestada di judul album danFALSEjika tidak, dengan aliasis_greatest_hits. - Perbarui CTE
trimmed_invoicelines, lakukanLEFT JOINtabelinvoicedantrackskeinvoicelinesmasing-masing padainvoice_iddantrack_id. - Gunakan subkueri untuk hanya mengembalikan album "Greatest Hits".
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
-- 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;