Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
sebvz1989
Contributor II
Contributor II

Consulta Promedio de horas

Buen día a todos. 

Me gustaría saber el promedio de horas entre una resta de dos campos.

Actualmente tengo este cálculo.  = Interval(FEC_HOR_SAL_ORI-FEC_HOR_LLE_ORI, 'hh:mm:ss' )

sebvz1989_0-1619190106485.png

Ojalá pudieran ayudarme.

Muchas gracias.

5 Replies
rubenmarin

Buenas, si e una tabla simple (no pivotante) puedes poner 'Media' como 'función totales', un desplegable que está en la dimensión.

Si es para otro objeto como un KPI puedes usar Interval(avg(aggr(FEC_HOR_SAL_ORI-FEC_HOR_LLE_ORI,FEC_HOR_LLE_ORI,FEC_HOR_SAL_ORI)) , 'hh:mm:ss' )

Aunque sería más eficiente si en el script creas un campo con la diferencia: FEC_HOR_SAL_ORI-FEC_HOR_LLE_ORI as FECH_HOR_DIFERENCIA así solo necesitarías Interval(Avg(FECH_HOR_DIFERENCIA), 'hh:mm:ss' )

Saludos.

sebvz1989
Contributor II
Contributor II
Author

Buen día, gracias por ayudarme!

Tengo una duda ya que los campos que creo para hacer la resta están descritos como:

Text(Date("FEC_LLEGADA_ORIGEN", 'DD-MM-YYYY')) & ' ' & Text(Time("HOR_LLEGADA_ORIGEN", 'hh:mm:ss')) as FEC_HOR_LLE_ORI,


Text(Date("FEC_SALIDA_ORIGEN", 'DD-MM-YYYY')) & ' ' & Text(Time("HOR_SALIDA_ORIGEN", 'hh:mm:ss')) as FEC_HOR_SAL_ORI,

Como podría hacer un resta en el script de los campos que acabo de crear?

De antemano muchas gracias.

rubenmarin

Hola, puedes hacer una caga resident o un load precedente, por ejemplo usando el load precedente:

LOAD
  *,
  FEC_HOR_SAL_ORI-FEC_HOR_LLE_ORI as FECH_HOR_DIFERENCIA
;
LOAD
  Text(Date("FEC_LLEGADA_ORIGEN", 'DD-MM-YYYY')) & ' ' & Text(Time("HOR_LLEGADA_ORIGEN", 'hh:mm:ss')) as FEC_HOR_LLE_ORI,
...

 

 

sebvz1989
Contributor II
Contributor II
Author

Hola Ruben. 

Disculpa las molestias. Me podrías ayudar? Hice un KPI con  Interval(avg(aggr(FEC_HOR_SAL_DES-FEC_HOR_LLE_DES,FEC_HOR_LLE_DES,FEC_HOR_SAL_DES)) , 'hh:mm:ss' )

Ahora necesito ponerle un filtro, que solo me tome ciertos datos de un campo. Podría hacerlo con un set analisis pero no se me ocurre como incluir el cálculo con Interval, AVG y AGGR.

A este cálculo necesito agregarle que el ID_ESTADO_VIAJE sea 1, 2, 4, 6, 7, 8, 12, 13.

rubenmarin

Hola, puedes probar si con añadirlo al avg es suficiente:

 Interval(avg({<ID_ESTADO_VIAJE={1,2,4,6,7,8,12,13}>} aggr(FEC_HOR_SAL_DES-FEC_HOR_LLE_DES,FEC_HOR_LLE_DES,FEC_HOR_SAL_DES)) , 'hh:mm:ss' )

En algunos casos se tienen que añadir en todos los campos afecatdos, pero en este caso no creo que se necesario, por si acaso, en este caso sería así:

 Interval(avg({<ID_ESTADO_VIAJE={1,2,4,6,7,8,12,13}>} aggr(Only({<ID_ESTADO_VIAJE={1,2,4,6,7,8,12,13}>} FEC_HOR_SAL_DES)-Only({<ID_ESTADO_VIAJE={1,2,4,6,7,8,12,13}>} FEC_HOR_LLE_DES),FEC_HOR_LLE_DES,FEC_HOR_SAL_DES)) , 'hh:mm:ss' )