ลำดับการประมวลผลคิวรี

Oracle SQL เบื้องต้น

Hadrien Lacroix

Content Developer

ลำดับการประมวลผลสำคัญอย่างไร?

  • ปรับคิวรีให้มีประสิทธิภาพ
    • ไม่มีผลลัพธ์ที่ไม่ต้องการ
    • ประมวลผลได้เร็วขึ้น
Oracle SQL เบื้องต้น

ตัวอย่าง

    SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
    WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
    HAVING AVG(Total) > 100
    ORDER BY Average DESC
Oracle SQL เบื้องต้น

ตัวอย่าง

    SELECT BillingCountry, AVG(Total) > 100) AS Average
->  FROM Invoice
    WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
    HAVING AVG(Total) > 100
    ORDER BY Average DESC
Oracle SQL เบื้องต้น

ตัวอย่าง

    SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
->  WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
    HAVING AVG(Total) > 100
    ORDER BY Average DESC
Oracle SQL เบื้องต้น

ตัวอย่าง

    SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
    WHERE BillingCity <> 'Paris' 
->  GROUP BY BillingCountry
    HAVING AVG(Total) > 100
    ORDER BY Average DESC
Oracle SQL เบื้องต้น

ตัวอย่าง

    SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
    WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
->  HAVING AVG(Total) > 100
    ORDER BY Average DESC
Oracle SQL เบื้องต้น

ตัวอย่าง

->  SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
    WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
    HAVING AVG(Total) > 100
    ORDER BY Average DESC
Oracle SQL เบื้องต้น

ตัวอย่าง

    SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
    WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
    HAVING AVG(Total) > 100
->  ORDER BY Average DESC
Oracle SQL เบื้องต้น

อะไรที่อาจผิดพลาดได้?

SELECT BillingCountry, 
       AVG(Total) > 100) AS Average
FROM Invoice
WHERE BillingCity <> 'Paris' 
GROUP BY BillingCountry
HAVING AVG(Total) > 100
ORDER BY Average DESC
  • ไม่สามารถใช้ alias ใน WHERE, GROUP BY และ HAVING
  • สามารถใช้ alias ใน ORDER BY ได้
Oracle SQL เบื้องต้น

อะไรที่อาจผิดพลาดได้?

SELECT BillingCountry, 
       AVG(Total) > 100) AS Average
FROM Invoice
WHERE BillingCity <> 'Paris' 
GROUP BY BillingCountry
HAVING AVG(Total) > 100
ORDER BY Average DESC
  • ไม่สามารถกรองค่า aggregate ใน WHERE
  • สามารถกรองค่า aggregate ใน HAVING ได้
Oracle SQL เบื้องต้น

อะไรที่อาจผิดพลาดได้?

SELECT BillingCountry, 
       AVG(Total) > 100) AS Average
FROM Invoice
WHERE BillingCity <> 'Paris' 
GROUP BY BillingCountry
HAVING AVG(Total) > 100)
ORDER BY Average DESC
  • ไม่สามารถกรองแถวรายบุคคลใน HAVING
  • สามารถกรองแถวรายบุคคลใน WHERE ได้
Oracle SQL เบื้องต้น

ลำดับการประมวลผลของคิวรี

  1. FROM และ JOIN: กำหนดข้อมูลที่จะคิวรี

  2. WHERE: กรองแถวแต่ละแถว

  3. GROUP BY: จัดกลุ่มแถว

  4. HAVING: กรองกลุ่ม

  5. SELECT: เลือกคอลัมน์และใช้ฟังก์ชันกับคอลัมน์

  6. DISTINCT: ลบข้อมูลซ้ำ

  7. UNION, UNION ALL, INTERSECT, MINUS: ใช้ set operator

  8. ORDER BY: เรียงลำดับแถว

Oracle SQL เบื้องต้น

มาฝึกกันเถอะ!

Oracle SQL เบื้องต้น

Preparing Video For Download...