Mengambil nilai ke-n dari window frame. Generalisasi dari FIRST_VALUE dan LAST_VALUE untuk posisi arbitrary.
Sama dengan tipe inputDiperbarui: 13 Jun 2026NTH_VALUE(expression, n) OVER (window_specification)Kolom atau ekspresi yang nilainya akan diambil
Posisi ke-n yang diinginkan (1-based index)
1 SELECT 2 department, 3 employee_name, 4 salary, 5 NTH_VALUE(salary, 2) OVER ( 6 PARTITION BY department 7 ORDER BY salary DESC 8 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 9 ) as second_highest_salary 10 FROM employees;
Mengambil gaji tertinggi kedua di setiap departemen.
| department | employee_name | salary | second_highest_salary |
|---|---|---|---|
| IT | Budi | 25000000 | 22000000 |
| IT | Ani | 22000000 | 22000000 |
| IT | Eko | 18000000 | 22000000 |
1 SELECT 2 category, 3 product_name, 4 sales, 5 NTH_VALUE(product_name, 1) OVER w as top1, 6 NTH_VALUE(product_name, 2) OVER w as top2, 7 NTH_VALUE(product_name, 3) OVER w as top3 8 FROM product_sales 9 WINDOW w AS ( 10 PARTITION BY category 11 ORDER BY sales DESC 12 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 13 );
Mendapatkan top 3 produk per kategori.
| category | product_name | sales | top1 | top2 | top3 |
|---|---|---|---|---|---|
| Electronics | Laptop | 5000 | Laptop | Phone | Tablet |
| Electronics | Phone | 4500 | Laptop | Phone | Tablet |
1 SELECT 2 department, 3 NTH_VALUE(salary, (COUNT(*) OVER w + 1) / 2) OVER w as median_salary 4 FROM employees 5 WINDOW w AS ( 6 PARTITION BY department 7 ORDER BY salary 8 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 9 );
Mengambil nilai tengah (pseudo-median) dari salary.
| department | median_salary |
|---|---|
| IT | 20000000 |
| Sales | 15000000 |
| HR | 12000000 |
Sudah paham NTH_VALUE? Latih langsung di browser
Latihan interaktif, langsung di browser.