[uylug-programming] Minutos trabajados por día... Ayuda con una query

Gustavo Azambuja hola at gazambuja.com
Mon Mar 25 13:12:47 PDT 2013


creo... (y nótese el "creo") que lo hace por el intervalo entre un evento y
el siguiente.


2013/3/25 Carlos M. Martinez <carlosmarcelomartinez at gmail.com>

>  La veo, es demencial :D
>
> Y me sigue sin quedar claro como resuelve el tema 'duracion'.
>
> salutes !
>
> ~C.
>
>
> On 3/25/13 5:01 PM, Gustavo Azambuja wrote:
>
> No, xq lo que necesito es saber la cantidad de tiempo trabajado mas alla
> de las acciones (si fueron 1 por minuto o 3 por minuto)...
> Les cuento q en G+ me están pasando una query enorme que tendré que
> probar...
> https://plus.google.com/u/0/111248427612525054266/posts/6WEozoy1RZm
>
>  Gracias desde ya a toda la ayuda! :D
>
>
>
>
> 2013/3/25 Carlos M. Martinez <carlosmarcelomartinez at gmail.com>
>
>>  Y no te sirve mas otras metrica? Estilo "cantidad de acciones / hora /
>> operador". Tal como describis tu problema tiene mucho mas sentido esto que
>> tratar de forzar una duración a algo que vos queres modelar como
>> instantáneo.
>>
>>
>>
>> On 3/25/13 4:54 PM, Gustavo Azambuja wrote:
>>
>> Si, para al final conseguir la cantidad de minutos trabajados durante el
>> día de cada operador y en definitiva, de la suma de todos los operadores
>> (me interesa la relación: minutos/día totales).
>> El tema es que como dije antes, las acciones son instantáneas, y muchas
>> veces un usuario tiene 2 o 3 por minuto... (t + 30 seg...) pero esto no me
>> daría un resultado real ya que algunos usuarios sería cada 15 segundos y
>> otros cada 50... la suma sería muy diferente...
>>
>>  Por lo que veo, lo que tengo que hacer es calcular las diferencias
>> entre cada intervalo y si son menores a 5 minutos, sumarlas.
>>
>>
>>
>>
>> 2013/3/25 Nicolás Sanguinetti <contacto at nicolassanguinetti.info>
>>
>>> Si entiendo bien, entonces, lo que querés es la unión de todos los
>>> intervalos [t, t + 5 minutos]. O sea, vos tenés que el usuario hizo
>>> acciones en:
>>>
>>>  t1 = 10:00
>>> t2 = 10:02
>>> t3 = 10:06
>>> t4 = 10:15
>>>
>>>  Lo que querés es llevar eso a que trabajó en [10:00 .. 10:05], [10:02
>>> .. 10:07], [10:06 .. 10:11] y [10:15 .. 10:20]. Y la unión de todos esos
>>> intervalos es [10:00 .. 10:11], [10:15 .. 10:20].
>>>
>>>  Eso es lo que querés?
>>>
>>>
>>> 2013/3/25 Chicken Urine <chickenurine at gmail.com>
>>>
>>>>  Podés sacar el máximo y mínimo para un usuario y saber el tiempo
>>>> total. Luego a eso le descontás el tiempo NO trabajado, que serían las
>>>> tareas de más de 5 minutos o lo que sea.
>>>> La verdad que así como está no se me ocurre como poder sacar un valor
>>>> aproximado sin, como bien dijo Carlos, darle una duración promedio a las
>>>> tareas.
>>>>
>>>>
>>>>  .:-:ChiCkENURiNE:-:.
>>>> + El SPAM <http://groups.google.com/group/spam-a-lot/> tiene su lugar.
>>>>
>>>>
>>>> 2013/3/25 Gustavo Azambuja <hola at gazambuja.com>
>>>>
>>>>> Si, entiendo. El tema es que no puedo cambiar la estructura que
>>>>> está... pero me diste algo para pensar con lo de t0+5min... creo que por
>>>>> ahí lo soluciono.
>>>>> Gracias!
>>>>>
>>>>>
>>>>> 2013/3/25 Carlos M. Martinez <carlosmarcelomartinez at gmail.com>
>>>>>
>>>>>>  El tema es que medir duración de algo es como que lógicamente
>>>>>> incompatible con la hipótesis de que las acciones son instantáneas (es
>>>>>> decir de duración 0, por lo cual la sumatoria siempre seria 0)
>>>>>>
>>>>>> Para calcular la cantidad de minutos ocupados en eso, se me ocurren
>>>>>> algunas cosas:
>>>>>>
>>>>>> - asumir una duracion por tarea, es decir, si aprete enter en t0, la
>>>>>> tarea duro hasta t0+5min
>>>>>> - agregar una columna de 'fin' de la accion, tratando de medir cuando
>>>>>> ese fin ocurre, creo que esto es lo mas razonable, ya que en realidad nada
>>>>>> es instantáneo
>>>>>> - asumir que la duracion de la tarea es entre enters sucesivos del
>>>>>> mismo usuario, asumiendo que trabajan siempre, lo cual te deja abierta la
>>>>>> duracion del ultimo 'enter' del dia
>>>>>>
>>>>>> - Y finalmente, pensar si en el caso de que realmente las acciones
>>>>>> sean logicamente instantaneas, si la metrica 'minutos trabajados' tiene
>>>>>> sentido, si no hace falta una metrica que sea 'cantidad de enters por
>>>>>> unidad de tiempo', o algo parecido.
>>>>>>
>>>>>> Creo que como dice Chicken, falta algo en el modelado de tu realidad.
>>>>>>
>>>>>> s2
>>>>>>
>>>>>> ~C.
>>>>>>
>>>>>>
>>>>>> On 3/25/13 11:45 AM, Gustavo Azambuja wrote:
>>>>>>
>>>>>> Carlos, gracias por responder... es que no son "tareas" mas bien son
>>>>>> "acciones"...
>>>>>> Imaginen que tienen una tabla donde los funcionarios que tienen cada
>>>>>> ENTER que apreto un usuario/funcionario, y en la columna date, lo que
>>>>>> aparece es la hora en que apreto ENTER...
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> id, user, action, date1, user1, a1, 2013-03-20 10:00:012, user2, a1, 2013-03-20 10:00:033, user2, a1, 2013-03-20 10:00:124, user3, a1, 2013-03-20 10:00:205, user2, a1, 2013-03-20 10:00:24
>>>>>> ...10, user3, a1, 2013-03-20 10:02:35
>>>>>> ...16, user3, a1, 2013-03-20 10:04:01
>>>>>>
>>>>>>
>>>>>>  El usuario user1: apreto solo una vez ENTER: 10h 00m 01s; el user2,
>>>>>> :03s, :12s, y :24s
>>>>>> Ahora, por ejemplo el user3, esta "apretando ENTER" cada algunos
>>>>>> cuantos segundos, y luego del id=16 no aparece mas... podría decir entonces
>>>>>> que el user3 trabajó desde 10:00 hasta las 10:04 (4 minutos trabajados)
>>>>>>
>>>>>>  el tema es como consigo llegar a esa conclusion usando PHP y
>>>>>> MySQL...
>>>>>>
>>>>>>  Como dije antes, asumo que el usuario ya no está trabajando si
>>>>>> pasan mas de 5 minutos sin "acciones" realizadas.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2013/3/25 Carlos M. Martinez <carlosmarcelomartinez at gmail.com>
>>>>>>
>>>>>>>  Pero como definis la 'duracion' de cada tarea ? el intervalo entre
>>>>>>> dos entradas ?
>>>>>>>
>>>>>>> On 3/25/13 10:50 AM, Gustavo Azambuja wrote:
>>>>>>>
>>>>>>> No, la tarea es "instantanea"... digamos, para entender, que cada
>>>>>>> registro es una pulsación de ENTER en el teclado del usuario... sabiendo
>>>>>>> eso, y que jamas pasan 5 minutos sin dar ENTER a menos que no estén
>>>>>>> trabajando... como consigo saber los "minutos trabajados por operador" (o
>>>>>>> la suma de todos los operadores)?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2013/3/25 Chicken Urine <chickenurine at gmail.com>
>>>>>>>
>>>>>>>>  Ok, entonces el date ese es la hora de inicio de la tarea, por lo
>>>>>>>> que supongo que la duración de una tarea es el tiempo entre 2 registros?
>>>>>>>>
>>>>>>>>
>>>>>>>>  .:-:ChiCkENURiNE:-:.
>>>>>>>> + El SPAM <http://groups.google.com/group/spam-a-lot/> tiene su
>>>>>>>> lugar.
>>>>>>>>
>>>>>>>>
>>>>>>>>   2013/3/25 Gustavo Azambuja <hola at gazambuja.com>
>>>>>>>>
>>>>>>>>> La columna date tiene el datetime del evento (q ejecutó una
>>>>>>>>> acción)
>>>>>>>>>
>>>>>>>>> En definitiva tengo una lista de eventos de diferentes usuarios y
>>>>>>>>> necesito calcular los "minutos trabajados totales)
>>>>>>>>>
>>>>>>>>> Para el cálculo asumo que si el usuario no ejecuta eventos en 5
>>>>>>>>> minutos no está trabajando.
>>>>>>>>>
>>>>>>>>> Uso MySQL, y podría completar el cálculo con php.
>>>>>>>>> El mar 25, 2013 8:20 a.m., "Chicken Urine" <chickenurine at gmail.com>
>>>>>>>>> escribió:
>>>>>>>>>
>>>>>>>>>  Gustavo, no me queda muy claro el ejemplo. La columna date
>>>>>>>>>> guarda un resultado de HH:MM:ss que llevó un tarea particular? O es la hora
>>>>>>>>>> de comienzo/fin?
>>>>>>>>>> Que rdbms estás utilizando? Ya que hay funciones específicas en
>>>>>>>>>> cada motor para el manejo de tipo de datos date.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  .:-:ChiCkENURiNE:-:.
>>>>>>>>>> + El SPAM <http://groups.google.com/group/spam-a-lot/> tiene su
>>>>>>>>>> lugar.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2013/3/24 Gustavo Azambuja <hola at gazambuja.com>
>>>>>>>>>>
>>>>>>>>>>>  Alguien me puede ayudar con esta query?
>>>>>>>>>>>
>>>>>>>>>>>  básicamente, necesito conseguir en base a una tabla que tiene
>>>>>>>>>>> acciones realizadas por mis usuarios (funcionarios) durante cada minuto.
>>>>>>>>>>> Ahora, necesito en base a esa tabla saber los "minutos trabajados"
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> http://stackoverflow.com/questions/15606675/minutes-work-by-users-how-to-make-this-query
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> id, user, action, date1, user1, a1, 2013-03-20 10:00:012, user2, a1, 2013-03-20 10:00:033, user2, a1, 2013-03-20 10:00:124, user3, a1, 2013-03-20 10:00:205, user2, a1, 2013-03-20 10:00:24.......
>>>>>>>>>>>
>>>>>>>>>>>  Por ejemplo:
>>>>>>>>>>>
>>>>>>>>>>>    1. Si tengo solo un funcionario trabajando las 24h, tendré:
>>>>>>>>>>>    24h*60m = 1440 minutos trabajados en el día.
>>>>>>>>>>>    2. Si tengo 2 funcionarios durante todo el día (24h) tendré:
>>>>>>>>>>>    2880 minutos trabajados hoy...
>>>>>>>>>>>    3. Si tengo los mismos dos funcionarios, pero trabajando 12h
>>>>>>>>>>>    cada uno, vuelvo a tener los 1440 m/día.
>>>>>>>>>>>
>>>>>>>>>>> Alguna idea de como podría armar una query que me de ésto? o
>>>>>>>>>>> como mucho con algo de PHP ademas de la query.
>>>>>>>>>>>
>>>>>>>>>>>  Gracias!
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>  --
>>>>>>>>>>> Gustavo Azambuja
>>>>>>>>>>> http://gazambuja.com
>>>>>>>>>>>
>>>>>>>>>>> Uruguay:     *091 300 333* (Montevideo - Mobile)
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Uylug-programming mailing list
>>>>>>>>>>> Uylug-programming at listas.uylug.org.uy
>>>>>>>>>>>
>>>>>>>>>>> http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Uylug-programming mailing list
>>>>>>>>>> Uylug-programming at listas.uylug.org.uy
>>>>>>>>>>
>>>>>>>>>> http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Uylug-programming mailing list
>>>>>>>>> Uylug-programming at listas.uylug.org.uy
>>>>>>>>>
>>>>>>>>> http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Uylug-programming mailing list
>>>>>>>> Uylug-programming at listas.uylug.org.uy
>>>>>>>>
>>>>>>>> http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  --
>>>>>>> Gustavo Azambuja
>>>>>>> http://gazambuja.com
>>>>>>>
>>>>>>> Uruguay:     *091 300 333* (Montevideo - Mobile)
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Uylug-programming mailing listUylug-programming at listas.uylug.org.uyhttp://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>  --
>>>>>> Gustavo Azambuja
>>>>>> http://gazambuja.com
>>>>>>
>>>>>> Uruguay:     *091 300 333* (Montevideo - Mobile)
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>  --
>>>>> Gustavo Azambuja
>>>>> http://gazambuja.com
>>>>>
>>>>> Uruguay:     *091 300 333* (Montevideo - Mobile)
>>>>>
>>>>> _______________________________________________
>>>>> Uylug-programming mailing list
>>>>> Uylug-programming at listas.uylug.org.uy
>>>>> http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Uylug-programming mailing list
>>>> Uylug-programming at listas.uylug.org.uy
>>>> http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Uylug-programming mailing list
>>> Uylug-programming at listas.uylug.org.uy
>>> http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>>>
>>>
>>
>>
>>  --
>> Gustavo Azambuja
>> http://gazambuja.com
>>
>> Uruguay:     *091 300 333* (Montevideo - Mobile)
>>
>>
>> _______________________________________________
>> Uylug-programming mailing listUylug-programming at listas.uylug.org.uyhttp://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>>
>>
>>
>
>
>  --
> Gustavo Azambuja
> http://gazambuja.com
>
> Uruguay:     *091 300 333* (Montevideo - Mobile)
>
>
>


-- 
Gustavo Azambuja
http://gazambuja.com
 <http://gazambuja.com>
Uruguay:     *091 300 333* (Montevideo - Mobile)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.uylug.org.uy/pipermail/uylug-programming-uylug.org.uy/attachments/20130325/50a83d5b/attachment-0002.htm>


More information about the Uylug-programming mailing list