[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