Я думаю, что ваша база данных объединяет все результаты ваших подзапросов. Позвольте мне показать вам пример из SQLite:
sqlite> create table A(a,b);
sqlite> create table B(c,d);
sqlite> insert into B values ('1c','1d');
sqlite> insert into B values ('2c','2d');
sqlite> insert into A values ('1a','1b');
sqlite> insert into A values ('2a','2b');
sqlite> select a,b,c,d from A, B;
1a|1b|1c|1d
1a|1b|2c|2d
2a|2b|1c|1d
2a|2b|2c|2d
sqlite> select a,b from A;
1a|1b
2a|2b
sqlite> select c,d from B;
1c|1d
2c|2d
Как видите, таблицы A и B имеют две строки. Однако выберите * из A, B производит 4 строки. Это потому, что он создает каждую возможную комбинацию для строк из A и B. Поэтому, когда вы суммируете () столбцы, вы получаете такие большие результаты.
Вы можете попробовать сделать что-то вроде:
SELECT
max(first_big_one_column_select),
max(second_big_one_column_select),
...
Но я не уверен, что это сработает. Я думаю, что многое зависит от базы данных, которую вы используете.