En el espíritu de la utilización de resúmenes para evitar el uso de todos los datos. Se puede ir muy distinto al de su solicitud original. Sólo una muy ingenua manera de empezar - esto probablemente podría ser hecho en una muy grande Postgres instancia. Esta es una exploración inicial paso para que se utiliza crudo sumas y cuenta a la hora de conseguir unas ideas. usted obtener algo de energía muy eficiente suma/contador de capacidades de un gestor de base de datos y utilizarla para hacer algunos análisis aproximado. Yo soy de una base de datos y masivamente paralelo con el análisis de los datos de fondo así que toma esto como un poco de un stat novatos enfoque, (tengo un MS en Appl Matemáticas no se utiliza activamente hasta hace muy poco)
Así que con todas esas advertencias que aquí va
a) considerar ingenuamente, los atributos (fecha, itemsold, precio, código postal) como columnas de su tabla. Estoy seguro de que usted tiene más, pero vamos a centrarnos en estas.
b) crear una tabla secundaria en la base de datos mediante la suma de todos los $ amts para un día de ventas por sabías que ahora puedes (fecha, dailysales, código postal). Algunos simple SQL ( select fecha, código postal, sum(precio) como dailysales from tabla group by .... recibe usted esta tabla.
Un mucho tabla más pequeña con 365 filas por código postal X # de zipcodes en sus datos.
Utilice esta tabla para exploraciones iniciales y también cuando muestra que usted puede utilizar esto como una verificación de la realidad.
Dependiendo de cuánto de la CPU y la memoria que dar este paso puede tardar minutos u horas. Sugieren no probarlo en un ordenador portátil (me tocó mi placa base después de un par de 100 pistas de tamaño similar problema en un circa 2005 portátil de vuelta :-) )
c) para cada código postal por separado hacer "el favorito de regresión", (dailysales de la variable dependiente, fecha de la variable independiente). Ver el MADlib proyecto http://MADlib.net si usted desea hacer esto en su lugar (MADlib hace en el análisis de bases de datos mediante la incorporación de C++ de matemáticas, de la matriz y las estadísticas de libs en Postgres)
d) una parcela por código postal, 365 puntos de datos (si usted tiene datos diarios) - buscar para aumentar, disminuir o no concluyentes. o simplemente obtener los coeficientes de correlación y la partición en tres cubos de +, - y "dontknow".
Esto permite separar, a través de Pareto pensamiento, el top 20 (o 10 o ..) en los códigos postales con el mayor aumento en las ventas por % y por $amt. Similar para la mayoría de disminuir ...
Usted puede ahora por separado creación de estrategias para profundizar la creciente, no concluyentes, y la disminución de los cubos de zipcodes, en un "divide y vencerás" de la moda.
MADlib también le permite ejecutar en la base de datos de R rutinas a través de PL/R pero por Lineal/de Regresión Logística y SVM embedded C++ es unas 100 veces más rápido. C4.5 también está disponible.
Si el tamaño de los datos se hace demasiado grande para Postgres (no creo que sea así, pero sólo en el caso), entonces existe la Greenplum MPP de la base de datos. Por 75 millones de filas debe ser capaz de hacer esto en un X-Gran instancia de EC2 o similar, con Postgres.
Si usted no quiere hacer esto en un dbms hay maneras de escribir algo de código de Python y iterar sobre el archivo de disco o tabla de base de datos tirando de un par de miles o cientos de miles de filas de una vez en memoria. Si usted no poner en Postgres hay maneras de obtener pequeñas muestras aleatorias de las filas.
Espero que esto tiene algún sentido, o al menos no es una tontería completa en su contexto :-)