Window functions di MySQL memungkinkan Anda melakukan operasi perhitungan di atas sekumpulan baris yang terkait dengan query, tetapi tetap mempertahankan hasil baris individu. Ini sangat berguna untuk tugas-tugas seperti penghitungan agregat, perankingan, atau operasi yang memerlukan konteks antar baris.
Jenis-jenis Window Function di MySQL:
1. **ROW_NUMBER()**: Memberikan nomor urut unik untuk setiap baris dalam hasil set query.
```sql
SELECT nama, nilai, ROW_NUMBER() OVER (ORDER BY nilai DESC) AS ranking
FROM siswa;
```
2. **RANK()**: Memberikan ranking pada setiap baris dalam partisi, dengan nilai yang sama menerima ranking yang sama.
```sql
SELECT nama, nilai, RANK() OVER (ORDER BY nilai DESC) AS ranking
FROM siswa;
```
3. **DENSE_RANK()**: Mirip dengan `RANK()`, tetapi tidak melewatkan angka peringkat jika ada nilai yang sama.
```sql
SELECT nama, nilai, DENSE_RANK() OVER (ORDER BY nilai DESC) AS ranking
FROM siswa;
```
4. **NTILE(n)**: Membagi hasil set ke dalam `n` bagian yang kira-kira sama, dan memberikan nomor bucket untuk setiap baris.
```sql
SELECT nama, nilai, NTILE(4) OVER (ORDER BY nilai DESC) AS kuartil
FROM siswa;
```
5. **LAG()**: Mengakses nilai dari baris sebelumnya dalam partisi.
```sql
SELECT nama, nilai, LAG(nilai, 1) OVER (ORDER BY nilai) AS nilai_sebelumnya
FROM siswa;
```
6. **LEAD()**: Mengakses nilai dari baris berikutnya dalam partisi.
```sql
SELECT nama, nilai, LEAD(nilai, 1) OVER (ORDER BY nilai) AS nilai_selanjutnya
FROM siswa;
```
7. **FIRST_VALUE()**: Mengembalikan nilai pertama dalam partisi.
```sql
SELECT nama, nilai, FIRST_VALUE(nilai) OVER (ORDER BY nilai) AS nilai_pertama
FROM siswa;
```
8. **LAST_VALUE()**: Mengembalikan nilai terakhir dalam partisi.
```sql
SELECT nama, nilai, LAST_VALUE(nilai) OVER (ORDER BY nilai) AS nilai_terakhir
FROM siswa;
```
Contoh Penggunaan:
Misalkan Anda ingin menghitung rata-rata nilai siswa dan menunjukkan peringkat mereka berdasarkan nilai tersebut:
```sql
SELECT
nama,
nilai,
AVG(nilai) OVER () AS rata_rata_nilai,
RANK() OVER (ORDER BY nilai DESC) AS ranking
FROM siswa;
```
Window functions ini biasanya digunakan bersama klausa `OVER` yang menentukan partisi (seperti `PARTITION BY`), urutan (`ORDER BY`), dan jendela perhitungan lainnya.
On this page of the site you can watch the video online SQL Lanjutan - WINDOW FUNCTION SQL DI MYSQL with a duration of hours minute second in good quality, which was uploaded by the user RhanTech 01 January 1970, share the link with friends and acquaintances, this video has already been watched 36 times on youtube and it was liked by 1 viewers. Enjoy your viewing!