Kom igångKom igång gratis

Common Table Expressions

Pissa, företaget du är konsult åt, planerar en reklamkampanj och behöver din expertis.

Kampanjen syftar till att lyfta fram deras populäraste pizza baserat på totalt antal beställningar.

De överväger också att introducera ett värdeerbjudande med sin billigaste pizza.

Ditt uppdrag som datateknikkonsult är att identifiera båda dessa pizzor.

Den här övningen är en del av kursen

Introduktion till Snowflake SQL

Visa kurs

Övningsinstruktioner

  • Skapa en CTE med namnet most_ordered och begränsa resultaten till 1.
  • Skapa ytterligare en CTE med namnet cheapest_pizza och filtrera fram den billigaste pizzan med hjälp av en underfråga för att hitta minimipriset.
  • Komplettera frågan så att pizza_id och total_qty – med aliaset metric – hämtas från CTE:n most_ordered.
  • Inkludera pizza_id och price – med aliaset metric – från CTE:n cheapest_pizza. Observera att kolumnernas ordning ska behållas.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

-- Create a CTE named most_ordered and limit the results 
___ ___ ___ (
    SELECT pizza_id, SUM(quantity) AS total_qty 
    FROM order_details GROUP BY pizza_id ORDER BY total_qty DESC
    ___
)
-- Create CTE cheapest_pizza where price is equal to min price from pizzas table
, ___ ___ (
    SELECT pizza_id, price
    FROM pizzas 
    WHERE price = (SELECT ___(price) FROM pizzas)
    LIMIT 1
)

SELECT pizza_id, 'Most Ordered' AS Description, total_qty AS metric
-- Select from the most_ordered CTE
FROM ___
UNION ALL
SELECT pizza_id, 'Cheapest' AS Description, price AS metric
-- Select from the cheapest_pizza CTE
FROM ___
Redigera och kör kod