Friday, December 10, 2010

SQL: agrupar registros por un intervalo arbitrario

Recientemente, un compañero me presento un problema, necesitaba escribir un query que agrupara registros por intervalos de 5,10,15 minutos, idealmente queria que se pudiera pasar un parametro al query para especificar el intervalo, despues de unos minutos di con la solucion:

declare @interval int

set @interval = 5
select datepart(hh, DateTimeColumn)
, datepart(mi, DateTimeColumn)/@interval*@interval
, count(*)
from thetable
group by datepart(hh, DateTimeColumn)
, datepart(mi, DateTimeColumn)/@interval*@interval

El truco esta en @interval*@interval, aunque parece que la division y multiplicacion se eliminan entre si, lo que realmente pasa ahi es una division entera, la cual al multiplicarla por el mismo valor, nos da los intervalos correctos.

He aqui una lista de valores generados para un intervalo de 5

minuto|dividido por 5|multiplicado por 5
0 | 0 | 0
1 | 0 | 0
...
5 | 1 | 5
6 | 1 | 5
...
10 | 2 | 10
11 | 2 | 10
...
Teniendo esto se pueden agregar mas campos al select, o hacer la presentacion del tiempo mas bonito, etc

declare @interval int
set @interval = 5
select convert(varchar(8), DTColumn, 1)+' '
      +convert(varchar(2), datepart(hh, DTColumn))+':'
      +convert(varchar(2), datepart(mi, DTColumn)/@interval*@interval)
, count(*)
from the_table
group by convert(varchar(8), DTColumn, 1)+' '
      +convert(varchar(2), datepart(hh, DTColumn))+':'

      +convert(varchar(2), datepart(mi, DTColumn)/@interval*@interval)


Esto nos da algo asi:

11/12/10 10:10    28

11/12/10 10:15    11

11/12/10 10:20    57

Espero le sea de utilidad a alguien

Monday, November 29, 2010

VirtualBox VM no suelta el mouse

Un pequeño post para compartirles algo que me acaba de suceder, estoy probando VirtualBox en mi OpenSuse, instalando Windows XP en una VM, se me ocurrio dar click dentro de la VM, habiendo leido que con la tecla [ctrl] derecha me soltaba el mouse, pero para mi sorpresa [ctrl] no funciono, busque en Google desde otra maquina y no encontre la solucion, aunque si muchos articulos que hablan sobre el tema, y las razones tecnicas y como hacer para que ya no suceda y otras hierbas, el caso que no encontre nada que me sirviera en ese momento para salirme de la VM, asi que ya resignado, instintivamente presione ctrl+alt+del, y oh sorpresa, esa combinacion fue la que solto el mouse de la VM :)

Asi que decidi documentar la anectoda, esperando le sea de utilidad a alguien mas

Friday, October 01, 2010

Interfaces de usuario para captura de datos

Hace unos dias grabe un episodio del dev3cast con Alex Briseño y Gabriel Flores sobre interfaces graficas orientadas a captura masiva de datos, si nunca has trabajado en este tipo de aplicaciones seguramente te sorprenderan algunas de las tecnicas que se aplican ahi, algunas de estas van en contra del "standard" al que estamos acostumbrados en aplicaciones 'normales'. El podcast lo encuentras aca

Gracias a Gabo por la invitacion a participar en el dev3cast

Tuesday, September 21, 2010

La intuitividad de Apple: Actualizando OS X

Acabo de actualizar mi OS X a Snow Leopard (lo se, un poco tarde), primero que nada no puedo entender como es que OS X, que corre en una sola configuracion de hardware (ok, talvez 2 o 3) toma mas de una hora para instalar, mientras que Windows que corre en millones de configuraciones de hardware puede instalar en 15 minutos (incluyendo la reseteada obligatoria, ya listo para usarse).Por mas que intento no le veo lo intuitivo a este asunto, pero bueno, dejando eso de lado, una de las 3? grandes caracteristicas de Snow Leopard es Safari 4, antes de instalar me di cuenta que ya tenia Safari 5, procedi con la instalacion y para mi sorpresa, cuando finalmente termino de actualizar, ahora tenia Safari 4!! Mas de una hora actualizando y ni siquiera pudieron checar si la version de los componentes existentes era mayor que los de la actualizacion? La verdad me dio miedo checar si habia algo mas que hubiera bajado de version. Actualizar OS X resulta en una obsoletizacion (palabra inventada) de sus componentes, como es que eso es intuitivo?
Para terminar, despues de la actualizacion fui a checar las actualizaciones, habia 776MB de estas (y estos son los que se burlan de las actualizaciones de Windows?) y, claro esta, en la lista estaba Safari 5.

En resumidas cuentas: Tenia Safari 5, actualice OS X, me bajo la version a Safari 4, luego tuve que instalar 776MB de actualizaciones para regresar a donde estaba antes de la actualizacion. Intuitivo o no? ahi se los dejo.

Update. Despues de otros 10 minutos, llegaron mas actualizaciones, esta vez unos 200MB adicionales de actualizaciones, claro, reseteada requerida incluida.