Window

ROW_NUMBER

BigQueryBigQuery

Assigns a unique sequential number to each row within a partition, starting at 1. No duplicate values are assigned.

Tipe hasil: INT64Diperbarui: 13 Jun 2026

Syntax

SQL
ROW_NUMBER() OVER ([PARTITION BY partition_expression] ORDER BY sort_expression)

Parameter

ORDER BYexpressionwajib

Determines the numbering order

PARTITION BYexpressionopsional

Divides data into groups (optional)

Contoh Penggunaan

Basic Row Numbering

SQL
1SELECT
2 name,
3 department,
4 salary,
5 ROW_NUMBER() OVER (ORDER BY salary DESC) as salary_rank
6FROM `project.dataset.employees`;

Assign row numbers ordered by highest salary first.

Hasil
namedepartmentsalarysalary_rank
AliceEngineering1200001
BobSales1100002
CharlieEngineering1000003

Row Number per Partition

SQL
1SELECT
2 customer_id,
3 order_date,
4 amount,
5 ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY order_date DESC) as order_num
6FROM `project.dataset.orders`;

Assign row numbers per customer, with the most recent order numbered 1.

Deduplication

SQL
1WITH ranked AS (
2 SELECT *,
3 ROW_NUMBER() OVER (PARTITION BY email ORDER BY created_at DESC) as rn
4 FROM `project.dataset.users`
5)
6SELECT * FROM ranked WHERE rn = 1;

Retrieve the most recent record per email address to deduplicate.

Pertanyaan Umum tentang ROW_NUMBER

Apa itu fungsi ROW_NUMBER di BigQuery?
Assigns a unique sequential number to each row within a partition, starting at 1. No duplicate values are assigned. Di BigQuery, fungsi ROW_NUMBER termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan ROW_NUMBER di BigQuery?
Gunakan sintaks berikut: ROW_NUMBER() OVER ([PARTITION BY partition_expression] ORDER BY sort_expression). Pastikan argumen yang dimasukkan sudah sesuai dengan tipe data yang diharapkan.
Apa nilai yang dikembalikan oleh fungsi ROW_NUMBER?
Fungsi ROW_NUMBER mengembalikan nilai bertipe INT64. Pastikan tipe data hasil sudah sesuai dengan kebutuhan query atau formula kamu. Jika input mengandung nilai NULL, perilaku fungsi dapat berbeda — selalu periksa dokumentasi untuk memastikan hasilnya sesuai ekspektasi.
Apa saja parameter fungsi ROW_NUMBER?
Fungsi ini memiliki 1 parameter wajib dan 1 parameter opsional. Parameter yang digunakan: PARTITION BY (expression, opsional): Divides data into groups (optional); ORDER BY (expression, wajib): Determines the numbering order.
Ngulik Langsung

Sudah paham ROW_NUMBER? Latih langsung di browser

Latihan interaktif, langsung di browser.

Latihan Langsung →