none
Promedio Hora-Minuto RRS feed

  • Pregunta

  • Muy buenas.

    Estoy intentando hacer una query que me pueda sacar un promedio de acuerdo a horas.

    Ejemplo

    1- 0:40

    2- 0:20

    3- 0:30

     Promedio: 30 Minutos.

    Otro ejemplo

    1-1:00

    2-0:30

    3:1:30

    Promedio: 1 Hora.

    Nosé como hacerlo.

    =( 

    De antemanos, gracias .

    jueves, 16 de marzo de 2017 18:48

Respuestas

  • Cunxi,

    Es una operación simple de promedio de minutos y mostrar el resultado en una unidad de tiempo, unidad de tiempo que debes determinar, por ejemplo:

    WITH T AS (
        SELECT
    	   AVG(DATEDIFF(MINUTE, 0, CONVERT(time(0), t1.Tiempo))) AS [Minuto]
        FROM
    	   (VALUES ('0:40'), ('0:20'), ('0:30')) t1 (Tiempo)
        UNION ALL
        SELECT    
    	   AVG(DATEDIFF(MINUTE, 0, CONVERT(time(0), t1.Tiempo))) AS [Minuto]
        FROM
    	   (VALUES ('1:00'), ('0:30'), ('1:30')) t1 (Tiempo)
    )
    SELECT t1.Minuto AS [Minutos], t1.Minuto/60.0 AS [Horas] FROM T t1;
    GO
    --Resultado: 
    --30m | 0.5h
    --60m | 1h



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Cunxi jueves, 16 de marzo de 2017 19:15
    jueves, 16 de marzo de 2017 19:10

Todas las respuestas

  • Que tal si posteas la estructura con data de ejemplo y ademas el comentario de lo que deseas hacer?


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    jueves, 16 de marzo de 2017 18:58
  • Estimado.

    En la imagen, se ven 3 registros de horas. Las 3 solo tienen segundos.

    En la parte inferior, hice una query para que me sume los registros y los transforme en horas/segundos.

    set @suma=(SELECT    CONVERT(DATETIME, CONVERT(CHAR(3), SUM(DATEPART(MINUTE, fch_difemisiondr)) / 60 + SUM(DATEPART(HOUR, fch_difemisiondr))) + ':' + CONVERT(CHAR(3),
    				SUM(DATEPART(MINUTE, fch_difemisiondr)) % 60) + ':' + CONVERT(CHAR(3), SUM(DATEPART(SECOND, fch_difemisiondr)) % 60)) AS Expr1
    		FROM         #solohoras)

    Finalmente, solo me queda sacar el promedio de estos 3 registros.

    Saludos y gracias x responder.

    jueves, 16 de marzo de 2017 19:03
  • Cunxi,

    Es una operación simple de promedio de minutos y mostrar el resultado en una unidad de tiempo, unidad de tiempo que debes determinar, por ejemplo:

    WITH T AS (
        SELECT
    	   AVG(DATEDIFF(MINUTE, 0, CONVERT(time(0), t1.Tiempo))) AS [Minuto]
        FROM
    	   (VALUES ('0:40'), ('0:20'), ('0:30')) t1 (Tiempo)
        UNION ALL
        SELECT    
    	   AVG(DATEDIFF(MINUTE, 0, CONVERT(time(0), t1.Tiempo))) AS [Minuto]
        FROM
    	   (VALUES ('1:00'), ('0:30'), ('1:30')) t1 (Tiempo)
    )
    SELECT t1.Minuto AS [Minutos], t1.Minuto/60.0 AS [Horas] FROM T t1;
    GO
    --Resultado: 
    --30m | 0.5h
    --60m | 1h



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Cunxi jueves, 16 de marzo de 2017 19:15
    jueves, 16 de marzo de 2017 19:10
  • Estimado, agradecido!! 

    Saludos.

    jueves, 16 de marzo de 2017 19:39