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 Freeform

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 bertindak sebagai sub kueri yang berkorelasi yang menerapkan hasil subkueri ke setiap baris dalam tabel customers. Berikut adalah perinciannya:

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

  2. CROSS APPLY: Kata kunci ini memperkenalkan subkueri yang terkait. Kode 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, dialiaskan sebagai 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 Joni Dwi
2 Julaeha Santoso

Pesanan:

OrderId CustomerId Jumlah
1 1 5
2 1 3
3 2 2

Kueri tersebut akan mengembalikan hasil berikut:

CustomerId CustomerName TotalQuantity
1 Joni Dwi 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 spesifik ini, Anda dapat mencapai hasil yang sama menggunakan JOIN dengan klausa GROUP BY. Namun, CROSS APPLY dapat menjadi 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