Urutan pemrosesan kueri

Pengantar Oracle SQL

Hadrien Lacroix

Content Developer

Mengapa urutan pemrosesan penting?

  • Optimalkan kueri Anda
    • Tidak ada hasil yang tidak diinginkan
    • Eksekusi lebih cepat
Pengantar Oracle SQL

Contoh

    SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
    WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
    HAVING AVG(Total) > 100
    ORDER BY Average DESC
Pengantar Oracle SQL

Contoh

    SELECT BillingCountry, AVG(Total) > 100) AS Average
->  FROM Invoice
    WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
    HAVING AVG(Total) > 100
    ORDER BY Average DESC
Pengantar Oracle SQL

Contoh

    SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
->  WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
    HAVING AVG(Total) > 100
    ORDER BY Average DESC
Pengantar Oracle SQL

Contoh

    SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
    WHERE BillingCity <> 'Paris' 
->  GROUP BY BillingCountry
    HAVING AVG(Total) > 100
    ORDER BY Average DESC
Pengantar Oracle SQL

Contoh

    SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
    WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
->  HAVING AVG(Total) > 100
    ORDER BY Average DESC
Pengantar Oracle SQL

Contoh

->  SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
    WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
    HAVING AVG(Total) > 100
    ORDER BY Average DESC
Pengantar Oracle SQL

Contoh

    SELECT BillingCountry, AVG(Total) > 100) AS Average
    FROM Invoice
    WHERE BillingCity <> 'Paris' 
    GROUP BY BillingCountry
    HAVING AVG(Total) > 100
->  ORDER BY Average DESC
Pengantar Oracle SQL

Apa yang bisa salah?

SELECT BillingCountry, 
       AVG(Total) > 100) AS Average
FROM Invoice
WHERE BillingCity <> 'Paris' 
GROUP BY BillingCountry
HAVING AVG(Total) > 100
ORDER BY Average DESC
  • Alias tidak boleh dipakai di WHERE, GROUP BY, dan HAVING
  • Alias boleh dipakai di ORDER BY
Pengantar Oracle SQL

Apa yang bisa salah?

SELECT BillingCountry, 
       AVG(Total) > 100) AS Average
FROM Invoice
WHERE BillingCity <> 'Paris' 
GROUP BY BillingCountry
HAVING AVG(Total) > 100
ORDER BY Average DESC
  • Nilai agregat tidak bisa difilter di klausa WHERE
  • Nilai agregat bisa difilter di klausa HAVING
Pengantar Oracle SQL

Apa yang bisa salah?

SELECT BillingCountry, 
       AVG(Total) > 100) AS Average
FROM Invoice
WHERE BillingCity <> 'Paris' 
GROUP BY BillingCountry
HAVING AVG(Total) > 100)
ORDER BY Average DESC
  • Baris tunggal tidak bisa difilter di klausa HAVING
  • Baris tunggal bisa difilter di klausa WHERE
Pengantar Oracle SQL

Urutan eksekusi kueri

  1. FROM dan JOIN: tentukan data yang dikueri

  2. WHERE: filter baris individual

  3. GROUP BY: kelompokkan baris

  4. HAVING: filter grup

  5. SELECT: pilih kolom dan terapkan fungsi pada kolom

  6. DISTINCT: hapus duplikat

  7. UNION, UNION ALL, INTERSECT, MINUS: terapkan operator himpunan

  8. ORDER BY: urutkan baris

Pengantar Oracle SQL

Ayo berlatih!

Pengantar Oracle SQL

Preparing Video For Download...