Menjelaskan Fungsi SQL

Menjelaskan cuplikan kode SQL.

Anda dapat membuat kueri model secara langsung dan menguji hasil yang ditampilkan saat menggunakan parameter value yang berbeda dengan Konsol Cloud, atau dengan memanggil Vertex AI API secara langsung.

Perintah Format Bebas

Jelaskan fungsi CROSS APPLY dalam kode di bawah ini:

SELECT customer.CustomerId, customer.CustomerName, ord.*
FROM customers customer
CROSS APPLY
(
    SELECT SUM(order.quantity) as TotalQuantity
    FROM orders order
    WHERE order.CustomerId = customer.CustomerId
) ord;

Respons

Fungsi CROSS APPLY dalam kode SQL ini berfungsi sebagai subkueri yang berkorelasi yang menerapkan hasil subkueri ke setiap baris dalam tabel customers. Berikut perinciannya:

  1. Kueri Luar: Kueri utama memilih CustomerId dan CustomerName dari tabel customers, dengan alias customer.

  2. CROSS APPLY: Kata kunci ini memperkenalkan subkueri yang berkorelasi. Ini menginstruksikan database untuk mengeksekusi subkueri untuk setiap baris dalam tabel customers.

  3. Subkueri: Subkueri menghitung TotalQuantity untuk setiap pelanggan dengan:

  4. Memilih jumlah quantity dari tabel orders, dengan alias order.

  5. Memfilter tabel orders berdasarkan CustomerId dari baris saat ini di tabel customers.

  6. Hasil: CROSS APPLY menampilkan satu baris untuk setiap pelanggan, yang berisi CustomerId, CustomerName, dan TotalQuantity yang dihitung.

Intinya, CROSS APPLY memungkinkan Anda membuat kolom baru (TotalQuantity) secara dinamis untuk setiap pelanggan berdasarkan hasil subkueri, yang secara efektif menggabungkan tabel customers dengan data pesanan gabungan.

Contoh:

Misalnya, Anda memiliki data berikut:

Pelanggan:

CustomerId CustomerName
1 John Doe
2 Julaeha Santoso

Pesanan:

OrderId CustomerId Kuantitas
1 1 5
2 1 3
3 2 2

Kueri akan menampilkan hasil berikut:

CustomerId CustomerName TotalQuantity
1 John Doe 8
2 Julaeha Santoso 2

Catatan:

  • CROSS APPLY mirip dengan OUTER APPLY, tetapi OUTER APPLY menampilkan baris meskipun subkueri tidak menampilkan hasil apa pun.
  • Dalam contoh khusus ini, Anda bisa mendapatkan hasil yang sama menggunakan JOIN dengan klausa GROUP BY. Namun, CROSS APPLY dapat lebih fleksibel dan efisien dalam skenario tertentu, terutama saat menangani subkueri yang kompleks.
Model: gemini-1.5-flash-001
Suhu: 1
Token output maks: 8192
TopK: 40
TopP: 0,95