es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo especificar el marco de ventana para mi suma?

¿Cómo/Puedo especificar este marco de ventana?

sum(Quantity) over (partition by AccountId, SymbolId order by Time rows between unbounded preceding and current row -1) PositionAmount?

Intenté solucionarlo de esta manera:

sum(Quantity) over (partition by AccountId, SymbolId order by Time rows between unbounded preceding and -1 following)

pero no se permite el uso de -1.

Por supuesto, puedo hacer una segunda selección sobre esto y encontrar el valor previo de PositionAmount con lag o algo similar.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para especificar un marco de ventana que incluya todas las filas desde el inicio de la partición hasta la fila actual, excepto la fila actual, puedes usar la siguiente sintaxis:

    sum(Quantity) over (partition by AccountId, SymbolId order by Time rows between unbounded preceding and 1 preceding) as PositionAmount
    

    Esto sumará la columna Quantity para todas las filas que tengan el mismo AccountId y SymbolId, y cuyo Time sea menor o igual al Time de la fila actual, pero excluye el valor de Quantity de la fila actual.

    Ten en cuenta que debes usar 1 preceding en lugar de -1 following, ya que este último no está permitido en la sintaxis.

Comments are closed.