Number rows in order within each customer.

Section: OVER clause fundamentals

Assign row numbers inside each partition

sql
sql
SELECT order_id,
       customer_id,
       created_at,
       ROW_NUMBER() OVER (
         PARTITION BY customer_id
         ORDER BY created_at DESC
       ) AS rn
FROM orders;
Explanation

`ORDER BY` inside the window defines sequence for ranking and frame-aware calculations.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing OVER clause fundamentals
Count all rows without collapsing them
Return total row count on every row.
OpenIn sheetsqlsame section
Aggregate within a partition
Compute a per-customer total on every row.
OpenIn sheetsqlsame section
Reuse a named window
Avoid repeating a long window definition.
OpenIn sheetsqlsame section
Explicit ROWS frame
Define exactly which physical rows are included.
OpenIn sheetsqlsame section
Use RANGE for peer-aware frames
Group rows that share the same ordering value.
OpenIn sheetsqlsame section
Exclude the current row from a frame
Compare a row against all earlier rows only.
OpenIn sheetsqlsame section