เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Common Table Expressions

Pissa บริษัทที่คุณเป็นที่ปรึกษาอยู่ กำลังวางแผนจัดแคมเปญโปรโมชัน และต้องการความเชี่ยวชาญของคุณ

แคมเปญนี้มีเป้าหมายเพื่อเน้นพิซซ่าที่ได้รับความนิยมสูงสุดโดยพิจารณาจากยอดสั่งซื้อรวม

นอกจากนี้ยังพิจารณาเปิดตัวเมนูคุ้มค่าที่นำเสนอพิซซ่าราคาประหยัดที่สุดด้วย

หน้าที่ของคุณในฐานะวิศวกรข้อมูลที่ปรึกษาคือระบุพิซซ่าทั้งสองรายการนี้

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Snowflake SQL เบื้องต้น

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้าง CTE ชื่อ most_ordered และจำกัดผลลัพธ์ให้เหลือ 1 รายการ
  • สร้าง CTE อีกอันชื่อ cheapest_pizza และกรองหาพิซซ่าราคาถูกที่สุดโดยใช้ subquery เพื่อค้นหาราคาต่ำสุด
  • เขียนคิวรีให้สมบูรณ์โดย SELECT pizza_id และ total_qty ที่ตั้ง alias ว่า metric จาก CTE most_ordered
  • เพิ่ม pizza_id และ price ที่ตั้ง alias ว่า metric จาก CTE cheapest_pizza โดยรักษาลำดับของคอลัมน์ไว้ตามเดิม

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

-- 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 ___
แก้ไขและรันโค้ด