Fungsi MySQL LAST_VALUE

Fungsi MySQL LAST_VALUE

Fungsi MySQL LAST_VALUE

Rangkuman : dalam tutorial Fungsi MySQL LAST_VALUE, Anda akan belajar bagaimana menggunakan LAST_VALUE()fungsi MySQL untuk mengembalikan baris terakhir dalam satu set baris terurut.

LAST_VALUE() Ringkasan Fungsi MySQL

The LAST_VALUE()fungsi adalah fungsi Windows yang memungkinkan Anda untuk memilih baris terakhir di set memerintahkan baris.

Berikut ini adalah sintaks dari LAST_VALUE()fungsi tersebut:

LAST_VALUE (expression) OVER (

[partition_clause]

[order_clause]

[frame_clause]

)

Bahasa kode: SQL (Structured Query Language) ( sql )

The LAST_VALUE()fungsi mengembalikan nilai expressiondari baris terakhir dari serangkaian diurutkan baris.

The OVERklausul memiliki tiga klausa: partition_clause, order_clause, dan frame_clause.

partition_clause

Ini partition_clausememiliki sintaks berikut:

PARTITION BY expr1, expr2, …

Bahasa kode: SQL (Structured Query Language) ( sql )

The PARTITION BYklausul mendistribusikan hasil set menjadi beberapa partisi ditentukan oleh satu atau lebih ekspresi expr1, expr2, dll LAST_VALUE()fungsi diterapkan untuk setiap partisi independen.

order_clause

Ini order_clausememiliki sintaks berikut:

ORDER BY expr1 [ASC|DESC],…

Bahasa kode: SQL (Structured Query Language) ( sql )

The ORDER BYklausul menentukan perintah logis dari baris dalam partisi di mana LAST_VALUE()fungsi beroperasi.

frame_clause

The frame_clausemendefinisikan subset dari partisi saat dimana LAST_VALUE()fungsi berlaku. Untuk informasi lebih rinci tentang frame_clause, silakan lihat tutorial fungsi Windows .

LAST_VALUE()Contoh fungsi MySQL

Mari kita siapkan tabel contoh untuk demonstrasi.

Berikut ini adalah skrip untuk membuat overtimetabel dan mengisi data ke dalam tabel.

CREATE TABLE overtime (

employee_name VARCHAR(50) NOT NULL,

department VARCHAR(50) NOT NULL,

hours INT NOT NULL,

PRIMARY KEY (employee_name , department)

);

INSERT INTO overtime(employee_name, department, hours)

VALUES(‘Diane Murphy’,’Accounting’,37),

(‘Mary Patterson’,’Accounting’,74),

(‘Jeff Firrelli’,’Accounting’,40),

(‘William Patterson’,’Finance’,58),

(‘Gerard Bondur’,’Finance’,47),

(‘Anthony Bow’,’Finance’,66),

(‘Leslie Jennings’,’IT’,90),

(‘Leslie Thompson’,’IT’,88),

(‘Julie Firrelli’,’Sales’,81),

(‘Steve Patterson’,’Sales’,29),

(‘Foon Yue Tseng’,’Sales’,65),

(‘George Vanauf’,’Marketing’,89),

(‘Loui Bondur’,’Marketing’,49),

(‘Gerard Hernandez’,’Marketing’,66),

(‘Pamela Castillo’,’SCM’,96),

(‘Larry Bott’,’SCM’,100),

(‘Barry Jones’,’SCM’,65);

Bahasa kode: SQL (Structured Query Language) ( sql )

1) MySQL LAST_VALUE()atas seluruh contoh hasil kueri

Pernyataan berikut mendapatkan nama karyawan, lembur, dan karyawan yang memiliki lembur tertinggi:

Baca Juga  CARA MENGETIK 10 JARI

SELECT

employee_name,

hours,

LAST_VALUE(employee_name) OVER (

ORDER BY hours

RANGE BETWEEN

UNBOUNDED PRECEDING AND

UNBOUNDED FOLLOWING

) highest_overtime_employee

FROM

overtime;

Bahasa kode: SQL (Structured Query Language) ( sql )

Outputnya adalah:

Contoh fungsi MySQL LAST_VALUE

Dalam contoh ini, ORDER BYklausa menentukan urutan logis baris dalam hasil yang ditetapkan oleh jam dari rendah ke tinggi.

Spesifikasi bingkai default adalah sebagai berikut:

RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

Bahasa kode: SQL (Structured Query Language) ( sql )

Ini berarti bingkai dimulai pada baris pertama dan berakhir pada baris saat ini dari kumpulan hasil.

Oleh karena itu, untuk mendapatkan karyawan yang memiliki jam lembur tertinggi, kami mengubah spesifikasi frame menjadi sebagai berikut:

RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING

Bahasa kode: SQL (Structured Query Language) ( sql )

Ini menunjukkan bahwa bingkai dimulai pada baris pertama dan berakhir pada baris terakhir set hasil.

2) MySQL LAST_VALUE()atas contoh partisi

Pernyataan berikut menemukan karyawan yang memiliki lembur tertinggi di setiap departemen:

SELECT

employee_name,

department,

hours,

LAST_VALUE(employee_name) OVER (

PARTITION BY department

ORDER BY hours

RANGE BETWEEN

UNBOUNDED PRECEDING AND

UNBOUNDED FOLLOWING

) most_overtime_employee

FROM

overtime;

Bahasa kode: SQL (Structured Query Language) ( sql )

Gambar berikut menunjukkan keluarannya:

Contoh partisi MySQL LAST_VALUE Function OVER

Dalam contoh ini, pertama, PARTITION BYklausul membagi karyawan dengan departemen. Kemudian, ORDER BYklausul memerintahkan karyawan di setiap departemen dengan lembur dari rendah ke tinggi.

Spesifikasi frame dalam hal ini adalah seluruh partisi. Akibatnya, LAST_VALUE()fungsi tersebut memilih baris terakhir di setiap partisi yang merupakan karyawan yang memiliki lembur tertinggi.

Dalam tutorial ini, Anda telah mempelajari cara menggunakan LAST_VALUE()fungsi MySQL untuk mendapatkan baris terakhir dalam satu set baris yang terurut.

 

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Need Help? Chat with us