Album che trainano le vendite
Oggi la tua direttrice è passata alla tua scrivania con un’anticipazione su una promozione festiva sugli album "Greatest Hits" in arrivo. Tuttavia, per assicurarsi che vengano scontati gli album migliori, vuole sapere quali album "Greatest Hits" generano più vendite. Per farlo, metterai alla prova tutte le competenze che hai imparato!
Questo esercizio fa parte del corso
Manipolazione dei dati in Snowflake
Istruzioni dell'esercizio
- Definisci una CTE chiamata
album_map. - Crea un'istruzione
CASEche restituiscaTRUEsegreatestè nel titolo di un album eFALSEaltrimenti, con aliasis_greatest_hits. - Aggiorna la CTE
trimmed_invoicelines, eseguendo unLEFT JOINdelle tabelleinvoiceetracksainvoicelinesrispettivamente suinvoice_idetrack_id. - Usa una sottoquery per restituire solo gli album "Greatest Hits".
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
-- 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;