Window

NTH_VALUE

MySQLMySQL

Mengembalikan nilai dari baris ke-n dalam window frame. Generalisasi dari FIRST_VALUE dan LAST_VALUE.

Tipe hasil: Same as exprDiperbarui: 7 Jan 2026

Syntax

SQL
NTH_VALUE(expr, n) OVER ([PARTITION BY col] ORDER BY col [frame_clause])

Parameter

exprexpressionwajib

Kolom atau ekspresi yang diambil nilainya

nintegerwajib

Posisi baris yang diinginkan (dimulai dari 1)

ORDER BYcolumn(s)wajib

Kolom untuk menentukan urutan

PARTITION BYcolumn(s)opsional

Kolom untuk membagi data menjadi grup (opsional)

Contoh Penggunaan

Nilai ke-2

SQL
1SELECT name, score,
2 NTH_VALUE(score, 2) OVER (
3 ORDER BY score DESC
4 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
5 ) AS second_highest
6FROM students;

Mendapatkan skor tertinggi kedua.

Hasil
(second highest score for comparison)

Median Sederhana

SQL
1SELECT name, salary,
2 NTH_VALUE(salary, 3) OVER (
3 ORDER BY salary
4 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
5 ) AS third_salary
6FROM top5_employees;

Mengambil nilai ke-3 dari 5 data (median).

Hasil
(third value as median)

Podium per Kategori

SQL
1SELECT category, product, sales,
2 NTH_VALUE(product, 1) OVER w AS gold,
3 NTH_VALUE(product, 2) OVER w AS silver,
4 NTH_VALUE(product, 3) OVER w AS bronze
5FROM products
6WINDOW w AS (
7 PARTITION BY category
8 ORDER BY sales DESC
9 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
10);

Top 3 produk per kategori.

Hasil
(gold, silver, bronze per category)