Suponiendo que su conjunto de datos es demasiado grande para almacenarlo en la memoria.... Si solo necesita los n elementos principales, puede mantener solo los resultados principales en la memoria a medida que navega a través de 1 millón de filas. Esto también funcionaría con su idea de tabla temporal, escribiendo los registros principales de cada lote.
Otra opción sería escribir una función definida por el usuario:
http://dev.mysql.com/doc/refman /5.1/es/agregar-funciones.html