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

Carlos M. Martinez carlosmarcelomartinez at gmail.com
Mon Mar 25 07:51:27 PDT 2013


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 10:00:01
> 2, user2, a1, 2013-03-20 10:00:03
> 3, user2, a1, 2013-03-20 10:00:12
> 4, user3, a1, 2013-03-20 10:00:20
> 5, 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
> <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* (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* (Montevideo - Mobile)

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


More information about the Uylug-programming mailing list