Ejemplo: numerar ventas por cliente (más reciente primero)

SELECT v.*,
       ROW_NUMBER() OVER (PARTITION BY v.id_cliente ORDER BY v.fecha DESC) AS rn
FROM ventas v;

Ejemplo: última venta por cliente

WITH x AS (
  SELECT v.*,
         ROW_NUMBER() OVER (PARTITION BY v.id_cliente ORDER BY v.fecha DESC) AS rn
  FROM ventas v
)
SELECT *
FROM x
WHERE rn = 1;