ÎncepețiÎncepe gratuit

Albumele care generează vânzări

Directoarea ta a venit astăzi la biroul tău și ți-a dat informații despre o promoție de sărbători dedicată albumelor "Greatest Hits" care urmează să fie lansată în curând. Pentru a se asigura că sunt reduse la preț albumele potrivite, ea vrea să știe care dintre albumele "Greatest Hits" generează cele mai multe vânzări. Pentru asta, vei pune la treabă toate abilitățile pe care le-ai învățat!

Acest exercițiu face parte din cursul

Manipularea datelor în Snowflake

Vezi cursul

Instrucțiuni pentru exercițiu

  • Definește un CTE numit album_map.
  • Creează o instrucțiune CASE care returnează TRUE dacă greatest apare în titlul unui album și FALSE în caz contrar, cu aliasul is_greatest_hits.
  • Actualizează CTE-ul trimmed_invoicelines, aplicând LEFT JOIN între tabelele invoice și tracks și tabela invoicelines pe câmpurile invoice_id, respectiv track_id.
  • Folosește o subinterogare pentru a returna doar albumele "Greatest Hits".

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

-- 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;
Editează și rulează codul