SQL Lanjutan - WINDOW FUNCTION SQL DI MYSQL

Publicado el: 01 enero 1970
en el canal de: RhanTech
36
1

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.


En esta página del sitio puede ver el video en línea SQL Lanjutan - WINDOW FUNCTION SQL DI MYSQL de Duración hora minuto segunda en buena calidad , que subió el usuario RhanTech 01 enero 1970, comparta el enlace con amigos y conocidos, en youtube este video ya ha sido visto 36 veces y le gustó 1 a los espectadores. Disfruta viendo!