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

Carlos M. Martinez carlosmarcelomartinez at gmail.com
Mon Mar 25 12:56:40 PDT 2013


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
> <mailto: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
>     <mailto: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
>         <mailto: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
>             <mailto: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, date
>>                 1, user1, a1, 2013-03-20 <tel:2013-03-20> 10:00:01
>>                 2, user2, a1, 2013-03-20 <tel:2013-03-20> 10:00:03
>>                 3, user2, a1, 2013-03-20 <tel:2013-03-20> 10:00:12
>>                 4, user3, a1, 2013-03-20 <tel:2013-03-20> 10:00:20
>>                 5, user2, a1, 2013-03-20 <tel:2013-03-20> 10:00:24
>>                 ...
>>                 10, user3, a1, 2013-03-20 <tel:2013-03-20> 10:02:35
>>                 ...
>>                 16, user3, a1, 2013-03-20 <tel: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
>>                 <mailto: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
>>>                     <mailto: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 <mailto: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
>>>                             <mailto: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
>>>                                 <mailto: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, date
>>>                                     1, user1, a1, 2013-03-20 <tel:2013-03-20> 10:00:01
>>>                                     2, user2, a1, 2013-03-20 <tel:2013-03-20> 10:00:03
>>>                                     3, user2, a1, 2013-03-20 <tel:2013-03-20> 10:00:12
>>>                                     4, user3, a1, 2013-03-20 <tel:2013-03-20> 10:00:20
>>>                                     5, user2, a1, 2013-03-20 <tel: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
>>>                                     <tel:091%20300%20333>*
>>>                                     (Montevideo - Mobile)
>>>
>>>                                     _______________________________________________
>>>                                     Uylug-programming mailing list
>>>                                     Uylug-programming at listas.uylug.org.uy
>>>                                     <mailto: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 <mailto: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
>>>                             <mailto: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
>>>                         <mailto: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 <tel:091%20300%20333>*
>>>                     (Montevideo - Mobile)
>>>
>>>
>>>                     _______________________________________________
>>>                     Uylug-programming mailing list
>>>                     Uylug-programming at listas.uylug.org.uy <mailto: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 <tel:091%20300%20333>*
>>                 (Montevideo - Mobile)
>
>
>
>
>             -- 
>             Gustavo Azambuja
>             http://gazambuja.com
>
>             Uruguay:     *091 300 333 <tel:091%20300%20333>*
>             (Montevideo - Mobile)
>
>             _______________________________________________
>             Uylug-programming mailing list
>             Uylug-programming at listas.uylug.org.uy
>             <mailto: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
>         <mailto: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
>     <mailto: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 list
> Uylug-programming at listas.uylug.org.uy
> http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.uylug.org.uy/pipermail/uylug-programming-uylug.org.uy/attachments/20130325/15d66aab/attachment-0002.htm>


More information about the Uylug-programming mailing list