El día que entendí ROW_NUMBER() dejé de sufrir con los 'top N por grupo'
Marcos A.
Nivel 3 ·
Marcos A.
Nivel 3 ·
Alan R.
Nivel 3 ·
Las funciones de ventana son de lo mejor del SQL moderno. Cuando entendés PARTITION BY ya no volvés atrás.
camila M.
Nivel 2 ·
Ojo con los empates: si dos pedidos tienen la misma fecha, ROW_NUMBER elige uno arbitrario. Si querés todos los empatados, usá RANK() o DENSE_RANK().
Gabriel B.
Nivel 3 ·
En Postgres, para este caso puntual, también existe DISTINCT ON (cliente_id) con ORDER BY cliente_id, fecha DESC. Más corto, aunque no es estándar.
Bautista F.
Nivel 2 ·
Mis favoritas: LAG y LEAD para comparar una fila con la anterior. Diferencia de ventas mes a mes en una línea.
Ana R.
Nivel 3 ·
Y SUM() OVER (ORDER BY fecha) para acumulados. Antes hacía eso en Excel jaja
Lorena M.
Nivel 3 ·
Gracias por el ejemplo, justo tenía este problema en un reporte.