Здесь нет волшебной палочки ... ключ, по которому происходит агрегация, отличается, поэтому SQL нужно перебирать по двум разным спискам. Чтобы сделать это немного более очевидным, спросите себя, как бы вы хотели, чтобы возвращались данные: сначала все field1, затем все field 2, или переплетенные, или, возможно, «поворотные» (но как? ..)
Чтобы избежать дополнительной «поездки» на сервер, мы могли бы вернуть эти два набора результатов вместе или даже сгруппировать их, используя UNION ALL (и осторожно добавлять префиксный столбец, чтобы знать, что к чему) , но это последнее решение приведет к тому, что сервер будет облагаться налогом чуть больше.