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.
Auf dieser Seite können Sie das Online-Video SQL Lanjutan - WINDOW FUNCTION SQL DI MYSQL mit der Dauer stunde minuten sekunde in guter Qualität ansehen, das der Benutzer RhanTech 01 Januar 1970 hochgeladen hat, den Link mit Freunden und Bekannten teilen, dieses Video wurde auf Youtube bereits 36 Mal angesehen und es wurde von 1 den Zuschauern gefallen. Viel Spaß beim Betrachtenden Zuschauern gefallen!