Fungsi Utama SQL

Fungsi Utama Sql



Fungsi SQL lead() memungkinkan Anda mengakses baris berikutnya dari baris saat ini pada offset tertentu. Singkatnya, fungsi lead() memungkinkan Anda mengakses baris berikutnya dari baris saat ini. Dengan menentukan nilai offset, Anda dapat mengakses baris 1, 2, 3, dst. berikutnya dari baris saat ini.

Ini adalah kebalikan dari fungsi lag() yang memungkinkan Anda mengakses baris sebelumnya.







Fungsi SQL Lead()

Sintaks fungsinya adalah sebagai berikut:



LEAD(nilai_ekspresi, offset [, default])
LEBIH (
[PARTISI OLEH partisi_ekspresi]
ORDER BERDASARkan sort_ekspresi [ASC | DESK]
);

Berikut argumen yang didukung:



  1. nilai_ekspresi – Ini menentukan nilai kembalian dari baris sebelumnya. Ekspresi harus bernilai tunggal.
  2. mengimbangi – Ini menentukan berapa banyak baris ke depan dari baris saat ini yang akan diakses.
  3. bawaan – Ini menetapkan nilai default jika offset berada di luar cakupan partisi. Secara default, nilainya diatur ke NULL.
  4. Partisi menurut – Ini menentukan cara mempartisi data.
  5. Dipesan oleh – Ini menetapkan format urutan untuk baris di setiap partisi.

Contoh Pengaturan Data

Sebelum kita mendalami cara kerja fungsi lead(), mari kita mulai dengan menyiapkan tabel dasar untuk tujuan demonstrasi.





BUAT produk TABEL (
product_id INT KUNCI UTAMA AUTO_INCREMENT,
nama_produk VARCHAR(255),
kategori VARCHAR(255),
harga DESIMAL(10, 2),
kuantitas INT,
tanggal_kedaluwarsa TANGGAL,
kode batang BESAR
);

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)
nilai ('Topi Koki 25cm',
'toko roti',
24.67,
57,
'2023-09-09',
2854509564204);

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)
nilai ('Telur Puyuh - Kalengan',
'sepen',
17.99,
67,
'29-09-2023',
1708039594250);

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)
nilai-nilai ('Kopi - Telur Nog Capuccino',
'toko roti',
92,53,
10,
'22-09-2023',
8704051853058);

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)
nilai-nilai ('Pear - Berduri',
'toko roti',
65.29,
48,
'23-08-2023',
5174927442238);

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)
nilai-nilai ('Pasta - Rambut Malaikat',
'sepen',
48.38,
59,
'2023-08-05',
8008123704782);

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)
nilai-nilai ('Anggur - Prosecco Valdobiaddene',
'menghasilkan',
44.18,
3,
'13-03-2023',
6470981735653);

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)
nilai-nilai ('Kue - Aneka Mini Prancis',
'sepen',
36,73,
52,
'29-05-2023',
5963886298051);

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)
nilai-nilai ('Oranye - Kalengan, Mandarin',
'menghasilkan',
65.0,
1,
'20-04-2023',
6131761721332);

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)
nilai ('Babi - Bahu',
'menghasilkan',
55,55,
73,
'2023-05-01',
9343592107125);

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)

nilai-nilai ('Dc Hikiage Hira Huba',
'menghasilkan',
56.29,
53,
'14-04-2023',
3354910667072);

Contoh 1:

Dalam hal ini, kami memiliki akses ke tabel “produk” yang berisi informasi produk. Misalkan kita ingin mendapatkan bar code berikutnya dari baris saat ini.

Kita dapat menggunakan fungsi lead() sebagai berikut:



Misalkan kita mempunyai tabel yang berisi informasi pegawai sebagai berikut:

Pilih
nama Produk,
harga,
lead(barcode) over (partisi berdasarkan kategori
dipesan oleh
harga asc) sebagai item_berikutnya
dari
produk hal;

Kode yang diberikan mempartisi data berdasarkan kategori. Ia kemudian mengambil kode batang berikutnya di partisi menggunakan fungsi lead().

Output yang dihasilkan adalah sebagai berikut:

Contoh 2:

Jika tidak ada baris berikutnya dalam kolom tertentu (di luar batas), fungsi akan menetapkan nilainya menjadi NULL seperti yang ditunjukkan pada contoh sebelumnya.

Untuk menetapkan nilai default untuk akses di luar cakupan, kita dapat melakukan hal berikut:

Pilih
nama Produk,
harga,
lead(barcode, 1, 'N/A') over (partisi berdasarkan kategori
dipesan oleh
harga asc) sebagai item_berikutnya
dari
produk hal;

Kami menetapkan nilai default ke 'T/A'. Ini harus menggantikan nilai di luar batas seperti yang ditunjukkan pada keluaran berikut:

CATATAN : Menyetel offset ke 1 mirip dengan tidak menentukan nilai apa pun.

Contoh 3:

Misalkan Anda ingin mengakses dua baris berikutnya dari baris saat ini. Kita dapat melakukannya dengan mengatur nilai offset menjadi 2.

Contoh kueri diilustrasikan sebagai berikut:

Pilih
nama Produk,
harga,
lead(barcode, 2, 'N/A') over (partisi berdasarkan kategori
dipesan oleh
harga asc) sebagai item_berikutnya
dari
produk hal;

Kueri ini mengembalikan dua baris berikutnya di setiap partisi seperti yang diperlihatkan berikut ini:

Itu dia!

Kesimpulan

Dalam tutorial ini, kita mempelajari cara bekerja dengan fungsi lead() untuk mendapatkan item berikutnya dari baris saat ini.