Действительно непонятна задача. Так-то вы в лоб можете определить разные окна и считать (одно для разделения по миллиону записей, другое для вычисления персентилей, раз нужны данные из других миллионов записей)
Да, непонятно формулирую, может в этом и причина, что ответа пока не получил.
Итак, есть таблица, которую надо разбить на партиции. Каждую партицию надо разбить на файлы, так чтобы подмножества первичных ключей в файлах не пересекались. Количество файлов для каждой партиции определяется динамически.