[uylug-programming] Minutos trabajados por día... Ayuda con una query
Carlos M. Martinez
carlosmarcelomartinez at gmail.com
Mon Mar 25 13:11:09 PDT 2013
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
> <mailto: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
>> <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 <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/3dd7eb52/attachment-0002.htm>
More information about the Uylug-programming
mailing list