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.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, DolphinDB soporta varias funciones que pueden ayudar a obtener la salida deseada, como lag, lead, runAgg y rolling.

    Una posible solución es utilizar runAgg con una función de agregación definida por el usuario.

    select volume, 
           runAgg((x, y) -> 
                  if (y < x[-1] and x[-2] < x[-1]) then x[-1] else 0, 
                  volume
                  ) as f 
    from tbl 
    

    En esta solución, runAgg calcula los resultados intermedios para cada fila de la columna de volumen utilizando una función definida por el usuario. La función toma dos parámetros: x e y, donde x es el resultado intermedio calculado para la fila anterior, y y es el valor actual de la columna de volumen.

    La función verifica si la columna de volumen cumple las condiciones especificadas en la pregunta. Si es así, devuelve el volumen anterior a t; de lo contrario, devuelve 0. El resultado intermedio calculado para la fila actual es el máximo valor entre el valor actual y el resultado devuelto por la función definida por el usuario.

    Finalmente, se obtiene la columna f seleccionando la salida de runagg.

Comments are closed.