← Volver

SQL Window

-- Top N por categoría
    SELECT *
    FROM (
      SELECT c.*, ROW_NUMBER() OVER (PARTITION BY categoria ORDER BY monto DESC) rn
      FROM compras c
    ) t
    WHERE rn <= 3;
-- LAG / LEAD
    SELECT id, fecha, monto,
           LAG(monto)  OVER (PARTITION BY id ORDER BY fecha) AS prev_monto,
           LEAD(monto) OVER (PARTITION BY id ORDER BY fecha) AS next_monto
    FROM pagos;