В чем суть.
Есть куча (m, где-то в районе 50) однотипных табличек с двумя колонками: id -- primary key и value -- некое число double precision. В каждой табличке одно и то же количество одних и тех же id (а строк может быть достаточно много, несколько миллионов).
Задача вроде бы и не сложная: объединить все маленькие таблички в одну большую вида (id, table_1.value, ..., table_n.value).
Есть два решения. Первое -- CREATE TABLE blabla as SELECT с большим длинным JOINом, который вроде бы работает достаточно быстро, но только на Postgres и только на небольшом датасете (а на большом БД не хватает оперативной памяти). На другом движке БД, Greenplum, JOIN по большому числу столбцов просто вешает базу.
Второе решение -- вначале сделать таблицу выбором всех primary key, а потом последовательно добавлять соответствующие столбцы. Это способ занимает слишком много времени.
Все продиктовано использующимися инструментами. А именно -- библиотекой madlib и ее функцией предсказания для дерева принятия решений. К сожалению, там иной структуры данных, кроме как кучи разрозненных табличек, и не получить. А объединять их требуется потому, что потом средствами этой библиотеки приходится строить регрессию, которой требуется скормить одну таблицу.
Согласен, что со структурой данных все очень плохо. Но таково задание.